C#导出HTML到PDF组件Pechkin
2024-08-25 12:01:32
http://www.knowsky.com/898441.html
C#导出PDF功能是开发中经常遇到的功能,我们采用第三方的组件,比如 iTextSharp, aspose等,还能搜到一些开源的类库,
但是对于一些内容复杂样式丰富的PDF,我们希望通过传入一个URL直接生成一个PDF,并且不能与网页原版差异太大,Pechkin倒是不错,相对来说差异很小。
在 Nuget 管理器中搜索“Pechkin”,请选择 CPechkin For .Net20+,这个组件是作者在 Pechkin 基础上修改的,剔除了 Common.Loging 依赖,描述中说项目必须是x86编译,但我发现,设置成 Any CPU也可以,但是如果是Web项目,部署到IIS后,应用程序池高级设置中必须选择启用32位应用程序,否则运行会报错。
包加载完毕后,会在项目根目录下放置几个DLL,这些是 Pechkin 依赖的,如果想删除,请先将这几个DLL拷贝到bin下
编译后,BIN下面有7个相关的DLL,这就是 Pechkin 的全部
调用代码很简单,两行就搞定了,SetMargins 设设置PDF的页边距。
Pechkin.Synchronized.SynchronizedPechkin sc = new Pechkin.Synchronized.SynchronizedPechkin(new Pechkin.GlobalConfig().SetMargins(new System.Drawing.PRinting.Margins(20, 20, 20, 20)));
byte[] buf = sc.Convert(new Uri(previewUrl)); var ms = new System.IO.MemoryStream(buf);
var fn = string.Format("report_{0}.pdf", reportNo); Logger.Instance.WriteLine("Generate a pdf from url {0}", previewUrl);
return new List<System.Net.Mail.Attachment> { new System.Net.Mail.Attachment(ms, fn, "application/pdf") };
得到一个 byte[]后,你可以写入一个文件产生一个PDF。我在代码中写入一个MemoryStream,然后加入邮件的附件发送,很方便。
Pechkin也支持传入一段HTML代码,生成一个PDF。
再看生成出来的PDF,左边是PDF,右边是原版网页,差别不大,就是表格的背景色丢失。
最新文章
- TaintDroid剖析之IPC级污点传播
- HTML5实现下载文件且指定下载文件名
- servlet实现的三种方式对比(servlet 和GenericServlet和HttpServlet)
- windows server 2008服务器IIS绑定阿里云域名
- find_cmd函数分析
- Cocos2d-x 3.0 场景切换
- VB6.0 String 用法总结
- Swift 基本基本运算符
- C++中出现的计算机术语1
- selenium2使用记录
- 理解 Node.js 的 Event loop
- HBase简介及原理
- Performance testing test scenarios
- plsql 常用函数-转
- 无根树同构_hash
- GitHub支持的Markdown语法 GitHub Flavored Markdown
- org.dom4j.DocumentException: unknown protocol: d Nested exception: unknown
- Job for vsftpd.service failed because the control process exited with error code
- oracle删除表空间下所有的表
- 深入理解java集合框架之---------Arraylist集合