• 页面导出生成pdf,使用wkhtmltopdf第三方工具


    把页面导出生成pdf,这里用到第三方的工具,使用方法中文文档没有找到,网上也没找到网友详细的神作。没有深入研究,所以也不赘述了,当然最基本的使用大多数也够用了,详细参数的官网也没介绍,大家使用的时候,可以通过命令行来查看参数帮助 wkhtmltopdf.exe --help

    简单使用,不说了,贴代码。

    /// <summary>
        /// html转换成pdf
        /// </summary>
        public class HtmlToPDFUtil
        {
            /// <summary>
            /// HTML生成PDF
            /// </summary>
            /// <param name="url">地址</param>
            /// <param name="path">PDF存放路径</param>
            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("/HtmlToPdf/Tools/wkhtmltopdf-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 = "E://3.pdf";
    HtmlToPDFUtil.HtmlToPdf(Request.Url.AbsoluteUri, path);

    好了,就这些了。其他的复杂使用,大家自行研究。

    赘述说下,这里涉及到的一个参数--outline,这个是生产目录的。目录的生成,根据页面中的标题标签<h1>到<h6>.

    额,对了,这个第三方有多种版本好像,还有一种安装使用的貌似,看网友有提到,没研究。需要使用的,自行查阅。

    完毕。

    ============================

    补充一篇大家使用讨论的,对于各种情况的使用很有帮助。

    http://code.google.com/p/wkhtmltopdf/wiki/Usage

     

    如若转换的为http请求,且带多个参数,失败的情况下,可以把请求地址加双引号;

    且pdf输出地址不支持中文目录,暂时没找到解决方法。

    输出地址可以写相对路径地址,这个目前感觉不是很好掌握。一般是相对于运行该命令的wkhtmltopdf所在的位置。

    其他文章:

    http://www.dotblogs.com.tw/shadow/archive/2011/09/28/38072.aspx

    http://social.msdn.microsoft.com/Forums/ja-JP/0d9b94ce-e9d3-4eb9-853d-79d4afe7e619/cdochtmlpdf?forum=2212

    http://www.tosync.org/?p=225

    http://www.shwzzz.cn/news/xuetang/159.html

  • 相关阅读:
    第四次上课 PPT作业
    大道至简 读后感④
    第三次上课 PPT 课后测试
    大道至简 读后感③
    Java 02 课后作业
    Java 多个数字相加算法
    大道至简 读后感②
    wpf控件
    一个简单的prism mef例子
    c#弱事件(weak event)
  • 原文地址:https://www.cnblogs.com/LL-723/p/3490728.html
Copyright © 2020-2023  润新知