Aspose.Words 的使用 Aspose.Total_for_.NET

时间:2023-03-08 16:06:45

最近在做有个业务需要Word做好模版,数据库取出业务数据在写入Word模版里面,然后生成PDF给客户端的业务人员

之前找了半天,没有找到用微软的Microsoft.Office.Interop.Word.WdExportRange 做,在调试的时候,完全没问题,但发布到服务端的时候,各种配置,组件安装的提示,最后都要崩溃了

最后不得已换了Aspose.Words 这个用起来真是爽啊

用法很简单 代码如下 :

  DataTable ret_val = DataLibrary.cl_DataLibrary.ds_ExecuteReader(sqlText.ToString(), CommandType.Text, new OracleParameter[] { op_SaleDetailNo, op_ShopNo }).Tables[];
//取出业务数据
if (ret_val.Rows.Count > )
{ Document doc = new Document(Server.MapPath("./printfiles/word模版.docx"));
DocumentBuilder builder = new DocumentBuilder(doc); Bookmark bm_SaleName;
if (doc.Range.Bookmarks["txt_titleuser"] != null)
{
bm_SaleName = doc.Range.Bookmarks["txt_titleuser"];
bm_SaleName.Text = ret_val.Rows[]["titleuser"].ToString();
} Bookmark bm_SaleNumber;
if (doc.Range.Bookmarks["txt_SaleNumber"] != null)
{
bm_SaleNumber = doc.Range.Bookmarks["txt_SaleNumber"];
bm_SaleNumber.Text = ret_val.Rows[]["SaleNumber"].ToString();
}
Bookmark bm_txt_v_question7_N;//
if (doc.Range.Bookmarks["txt_v_question7_N"] != null)
{
bm_txt_v_question7_N = doc.Range.Bookmarks["txt_v_question7_N"];
bm_txt_v_question7_N.Text = ret_val.Rows[]["v_question7_N"].ToString();
}
string strPathName = ret_val.Rows[]["titleuser"].ToString() + DateTime.Now.ToString("yyyyMMddHHmmssffff"); doc.Save(Server.MapPath("./printfiles/word模版" + strPathName + ".docx"), SaveFormat.Docx);//生成Docx
doc.Save(Server.MapPath("./printfiles/word模版" + strPathName + ".pdf"), SaveFormat.Pdf);//生成PDF
}

生成PDF就是这么简单

这里重点说一下Aspose.Words;

破解版的才会支持中文转换成PDF,英文默认支持 中文会出现乱码