最近在做有个业务需要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,英文默认支持 中文会出现乱码

Aspose.Words 的使用 Aspose.Total_for_.NET的更多相关文章

  1. Aspose.Cells 导出 excel

    Aspose.Cells.Workbook book = new Aspose.Cells.Workbook(); Aspose.Cells.Worksheet sheet = book.Worksh ...

  2. ASPose导出excel简单操作

    string file = FileDialogHelper.SaveExcel(string.Format("{0}.xls", excelName)); if (!string ...

  3. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

    我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...

  4. Aspose Cells 添加数据验证(动态下拉列表验证)

    参考 :http://www.componentcn.com/kongjianjishu/kongjianjishu/2015-06-04/2781.html Aspose Cells是一款操作和处理 ...

  5. 使用Aspose插件将程序中的表格,导出生成excel表格

    http://www.cnblogs.com/lanyue52011/p/3372452.html这个是原文地址 /// <summary> /// 点击按钮,将内存表导出excel表格! ...

  6. 利用Aspose文档转图片

    通过使用Aspose您可以轻松的将您的文档转换成真正的图片格式,最好的保证您的内容将实际可见,与其他格式相比,它并不存在查看工具的安装问题. 准备工作: 1:下载Aspose组件包:http://do ...

  7. 利用Aspose.Word控件实现Word文档的操作

    Aspose系列的控件,功能都挺好,之前一直在我的Winform开发框架中用Aspose.Cell来做报表输出,可以实现多样化的报表设计及输出,由于一般输出的内容比较正规化或者多数是表格居多,所以一般 ...

  8. 黄聪:利用Aspose.Word控件实现Word文档的操作(转)

    撰写人:伍华聪  http://www.iqidi.com  Aspose系列的控件,功能都挺好,之前一直在我的Winform开发框架中用Aspose.Cell来做报表输出,可以实现多样化的报表设计及 ...

  9. EpPlus读取生成Excel帮助类+读取csv帮助类+Aspose.Cells生成Excel帮助类

    大部分功能逻辑都在,少量自定义异常类和扩展方法 ,可用类似代码自己替换 //EpPlus读取生成Excel帮助类+读取csv帮助类,epplus只支持开放的Excel文件格式:xlsx,不支持 xls ...

随机推荐

  1. ubuntu fix the grub boot(need Internet)

    sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install -y boot- ...

  2. 一个null引发的错误

    写程序时,发生一个unrecognized selector的错误,很显然,这是一个经典错误,运行时找不到可调用的方法. 系统提示的reason是 -[NSNull length] 错误 经过查找,原 ...

  3. Apache2.2与php5.17 mysql配置

    php5.217应该用线程安全搬,不然各种无语的Apache打不开,PHPInfo没有Mysql的信息,记得把php.ini放入系统盘Windows目录下,Win764位的libmysql.dll也放 ...

  4. Glossary

    Glossary term terminology Certificate authority A norganization that authorizes a certificate. Certi ...

  5. 传智播客JavaWeb day07、day08-自定义标签(传统标签和简单标签)、mvc设计模式、用户注册登录注销

    第七天的课程主要是讲了自定义标签.简单介绍了mvc设计模式.然后做了案例 1. 自定义标签 1.1 为什么要有自定义标签 前面所说的EL.JSTL等技术都是为了提高jsp的可读性.可维护性.方便性而取 ...

  6. windows dir改成ls

    习惯了linux下的ls命令,windows的dir用的很不习惯,又不想装cygwin, bash,就想把dir重命名为ls,发现dos下有个命令doskey可以完成该功能.在命令提示符下敲: > ...

  7. LintCode Binary Tree Paths

    Binary Tree Paths Given a binary tree, return all root-to-leaf paths. Given the following binary tre ...

  8. Linux字符界面的优势

    优势一:字符界面占用的系统资源更少,更加适合服务器 优势二:字符界面减少了出错.被攻击的可能性(一.二决定了服务器一般不装图形界面,安全稳定优先)

  9. 《C与指针》第六章练习

    本章问题 1.如果一个值的类型无法简单的通过观察它的位模式来判断,那么机器是如何知道应该怎样对这个值进行操纵的? answer:The machine doesn't make this determ ...

  10. UVA 10474 大理石在哪 lower_bound

    题意:找输入的数在排完序之后的位置. 主要是lower_bound 函数的使用.它的作用是查找大于或者等于x的第一个位置. #include<cstdio> #include<alg ...