页面导出生成pdf,使用wkhtmltopdf第三方工具
把页面导出生成pdf,这里用到第三方的工具,使用方法中文文档没有找到,网上也没找到网友详细的神作。没有深入研究,所以也不赘述了,当然最基本的使用大多数也够用了,详细参数的官网也没介绍,大家使用的时候,可以通过命令行来查看参数帮助 wkhtmltopdf.exe --help 简单使用,不说了,贴代码。
///
/// html转换成pdf ///
public class HtmlToPDFUtil {
///
///
///
public static bool HtmlToPdf(string url, string path) {
try {
if (string.IsNullOrEmpty(url) || string.IsNullOrEmpty(path))
return false;
Process p = new Process(); string str =
System.Web.HttpContext.Current.Server.MapPath(\ltopdf-0.8.3.exe\);
if (!System.IO.File.Exists(str)) return false;
p.StartInfo.FileName = str;
p.StartInfo.Arguments = \--outline \ + url + \ \ + path; p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true; p.Start();
//p.WaitForExit();
System.Threading.Thread.Sleep(500);
return true;
}
catch (Exception ex) {
throw ex; } } }
调用:
string path = \;
HtmlToPDFUtil.HtmlToPdf(Request.Url.AbsoluteUri, path);
好了,就这些了。其他的复杂使用,大家自行研究。
赘述说下,这里涉及到的一个参数--outline,这个是生产目录的。目录的生成,根据页面中的标题标签
到.
额,对了,这个第三方有多种版本好像,还有一种安装使用的貌似,看网友有提到,没研究。需要使用的,自行查阅。 完毕。
============================ 补充一篇大家使用讨论的,对于各种情况的使用很有帮助。 http://code.google.com/p/wkhtmltopdf/wiki/Usage
如若转换的为http请求,且带多个参数,失败的情况下,可以把请求地址加双引号; 且pdf输出地址不支持中文目录,暂时没找到解决方法。
输出地址可以写相对路径地址,这个目前感觉不是很好掌握。一般是相对于运行该命令的wkhtmltopdf所在的位置。