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,右边是原版网页,差别不大,就是表格的背景色丢失。

最新文章

  1. TaintDroid剖析之IPC级污点传播
  2. HTML5实现下载文件且指定下载文件名
  3. servlet实现的三种方式对比(servlet 和GenericServlet和HttpServlet)
  4. windows server 2008服务器IIS绑定阿里云域名
  5. find_cmd函数分析
  6. Cocos2d-x 3.0 场景切换
  7. VB6.0 String 用法总结
  8. Swift 基本基本运算符
  9. C++中出现的计算机术语1
  10. selenium2使用记录
  11. 理解 Node.js 的 Event loop
  12. HBase简介及原理
  13. Performance testing test scenarios
  14. plsql 常用函数-转
  15. 无根树同构_hash
  16. GitHub支持的Markdown语法 GitHub Flavored Markdown
  17. org.dom4j.DocumentException: unknown protocol: d Nested exception: unknown
  18. Job for vsftpd.service failed because the control process exited with error code
  19. oracle删除表空间下所有的表
  20. 深入理解java集合框架之---------Arraylist集合

热门文章

  1. Windows Server2008 R2中的角色
  2. 用Python来进行词频统计
  3. 来自一个Backbone的Hello,World!
  4. 20155231 2016-2017-2 《Java程序设计》第8周学习总结
  5. 【CC2530强化实训04】定时器间隔定时实现按键N连击
  6. Python练习-Property的用法
  7. php 创建验证码方法
  8. Django 基础命令
  9. 【codeforces】【比赛题解】#868 CF Round #438 (Div.1+Div.2)
  10. CentOS配置163yum源