C#导出HTML到PDF组件Pechkin

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

时间: 2024-08-27 09:32:43

C#导出HTML到PDF组件Pechkin的相关文章

AspxGridView导出excel、pdf

AspxGridView导出excel.pdf ASPxGridViewExporter用于ASPxGridView的数据导出,导出的格式有csv,pdf,rtf,xls,使用非常简单,只用一个函数就可以完成数据的导出. 关于ASPxGridView的数据绑定就不用多说了,主要介绍一下数据导出 1.拖放一个ASPxGridViewExporter,ID设置为你要导出的AspxGridView的ID 2.拖放一个按钮,实现按钮的方法就一句话 public void ToExcel(object s

(架构)React Native 导出项目全局共用组件的模块

自定义组件全局使用(类似如下) import { ReactNavComponent, Widget, Util } from 'rn-yunxi'; const { RegexpUtil, StorageUtil } = Util; const { Button, Text } = Widget; 首先在项目中文件下新建rn-yunxi文件夹, 然后再package.json文件中导入 “rn-yunxi”: “file:./rn-yunxi”, "dependencies": {

ABBYY导出结果为PDF注意事项

使用ABBYY FineReader Pro for Mac OCR文字识别软件识别文档时,可以将已识别的文本保存到文件中,还可以通过电子邮件发送已识别的文本,只要输出格式受FineReader支持.那么如果想要将识别结果导出为PDF格式,有哪些信息需要注意的呢?本文具体给大家讲讲PDF导出参数. ABBYY FineReader识别文档之PDF导出参数: 1.导出模式 ?仅文本和图片 此模式可以保存已识别的文本和图片,可对页面进行全文搜索,PDF文件的大小也将变小,生成文档的外观可能与原始文档

Java 实现 FusionCharts 图表导出图片或PDF文件功能

第一步:引入FusionCharts文件,使用的版本为:FusionCharts 3.2.1(额,共享版,你懂的,后续提供下载链接)支持正版,官网地址:http://www.fusioncharts.com/ 第二步:引入fcexporter.jar包(图片导出功能库),并在web.xml文件中配置以下代码 <servlet> <display-name>FCExporter</display-name> <servlet-name>FCExporter&l

man手册导出成txt,pdf,html的一些小技巧

经常man一些shell命令,有时候有想导出来编辑或注释一下,所以要导出.方法有很多种,根据自己的实际需要觉得比较实用的记录下分享一下. 1.导出成txt man –t bash |col –b > bash_man.txt 这个是大家经常使用的,导出成txt文件,格式基本正确 2.导出成pdf man –t bash |ps2pdf – bash_man.pdf 这个是最近学习到的,可以导出成PDF格式,方便查看,也插方便的. 3.导出成html man -t --html=/usr/bin/

vba -------------vba 导出word到pdf 发邮件

Public Sub SendMail() Dim objAccount As Object Dim objApp As Object 'Outlook.Application ' If Not CheckData Then' Exit Sub' End If'' If MsgBox(shtMessage.Range("A1").Value, vbYesNo + vbExclamation) <> vbYes Then' Exit Sub' End If Set objAp

●导出excel(office组件)

string path1 = Server.MapPath(@"Muban/LKJSearch.xls"); //获取模板 string filename = Session["Uid"].ToString() + DateTime.Now.ToString("yyyyMMddhhmmssms") + ".xls"; //命名临时文件名 string path2 = Server.MapPath(@"Save/&qu

导出格式为PDF文档

HttpServletResponse response = ServletActionContext.getResponse(); try { FileOutputStream outputStream =new FileOutputStream("D:\\c.pdf"); Document document=new Document(PageSize.A4, 50, 50, 50, 50); PdfWriter.getInstance(document, outputStream)

win7 64位DCOM配置(关于导出excel 配置计算机组件服务)(转)

http://blog.sina.com.cn/s/blog_9323b3a50101qrxm.html [解决方案1] 1:在服务器上安装office的Excel软件. 2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务" 3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置" 4:在"DCO