Pechkin开源组件使用wkhtmlbox,可以解析CSS样式,将网页转换为PDF文件,支持URL,或者HTML字符串。
在 Nuget 管理器中搜索“Pechkin”,请选择 CPechkin For .Net20+,这个组件是作者在 Pechkin 基础上修改的,剔除了 Common.Loging 依赖,描述中说项目必须是x86编译,但我发现,设置成 Any CPU也可以,但是如果是Web项目,部署到IIS后,应用程序池高级设置中必须选择启用32位应用程序,否则运行会报错。
包加载完毕后,会在项目根目录下放置几个DLL,这些是 Pechkin 依赖的,如果想删除,请先将这几个DLL拷贝到bin下
编译后,BIN下面有7个相关的DLL,这就是 Pechkin 的全部
调用代码很简单
SynchronizedPechkin sc = new SynchronizedPechkin(new GlobalConfig()
.SetMargins(new Margins() { Left = 50, Right = 50, Top = 50, Bottom = 50 }) //设置边距
.SetPaperOrientation(false) //设置纸张方向为横向
.SetPaperSize(ConvertToHundredthsInch(210), ConvertToHundredthsInch(297)) //设置纸张大小210mm * 297mm
);
byte[] buf = sc.Convert(new ObjectConfig(), html);
if (buf == null)
{
MessageBox.Show("Error converting!");
}
try
{
string fn = "D:\XXX.pdf";
FileStream fs = new FileStream(fn, FileMode.Create);
fs.Write(buf, 0, buf.Length);
fs.Close();
Process myProcess = new Process();
myProcess.StartInfo.FileName = fn;
myProcess.Start();
}
catch (Exception ex)
{
MessageBox.Show($"PDF {ex.Message}");
}
生成PDF