把html页面转成pdf有很多方法,这里介绍一种使用wkhtmltopdf 运用程序来转换,亲自测试,还好用
首先需要先下载 wkhtmltopdf 下载地址: https://download.csdn.net/download/lwpoor123/14141878
下载后安装在指定位置
代码很简单,但需要注意的是 wkhtmltopdf 只能识别css样式,一些css3的样式识别不了,所以又可以转出来后样式没加载出来,排班就乱了
还有一点是 url 地址 和pdf存储的地址不能太长,不然会转换失败,,,
通过c#代码调用程序,代码如下:
string path = "";//安装wkhtmltopdf的位置
string url = "";//html页面url
string pdffilename = Guid.NewGuid().ToString("N") + ".pdf";//pdf文件名
string pdfUrl = "";//PDF存储的地址
//生成pdf文件
ProcessStartInfo processStartInfo = new ProcessStartInfo();//指定启动进程时使用的一组值。
processStartInfo.FileName = path + "wkhtmltopdf.exe";
processStartInfo.UseShellExecute = false;
processStartInfo.CreateNoWindow = true;
processStartInfo.RedirectStandardInput = true;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.RedirectStandardError = true;
processStartInfo.Arguments = " " + url + " " + pdfUrl + pdffilename;
Process process = new Process();
process.StartInfo = processStartInfo;
process.Start();
process.WaitForExit();
///用于查看是否返回错误信息
StreamReader srone = process.StandardError;
StreamReader srtwo = process.StandardOutput;
string ss1 = srone.ReadToEnd();
string ss2 = srtwo.ReadToEnd();
Discuz.Common.LogInfo.Log("BuildPDFAndSend", ": " + ss1 + " " + ss2 + " ");//记录输出信息
srone.Close();
srone.Dispose();
srtwo.Close();
srtwo.Dispose();
process.Close();
process.Dispose();