c# 使用wkhtmltopdf 把html页面转换成PDF存在本地

把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();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YuanlongWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值