• 黄聪:wkhtmtopdf--高分辨率HTML转PDF


    下载:http://wkhtmltopdf.org/

    代码篇

    浏览了很多实例,总找不到既能把HTML保存为PDF,同时实现流抛出的,所以自己琢磨了许久,终于实现了这样两个需求的结合体,下面来贡献一下吧~~

    下面我们来选择一个网页打印下,保存为PDF,而且实现流抛出保存,假设我们选择“http://www.cnblogs.com/huangcong

    页面截图如:

    image

    目标:我们需要做出上面这个效果的PDF。

    1.步骤

    • 首先新建一个项目HTMLtoPDFOutPutStream
    • 引用 System.Web 
    • 新建目录output;作为临时输出目录
    • 新建resoure目录,用于保存wkhtmltopdf.exe等各个组件
    • 最后在按钮的点击事件上写代码

    2.按钮的点击处理代码:

                    string fileName = Guid.NewGuid().ToString(); ;
    
                    string outputPath = Application.StartupPath + @"output";
                    string savepath = string.Format(outputPath + "\" + fileName + ".pdf");//最终保存
    
                    string url = "http://baidu.com";
    
                    try
                    {
                        if (!string.IsNullOrEmpty(url) || !string.IsNullOrEmpty(savepath))
                        {
                            Process p = new Process();
                            string resource = Application.StartupPath + @"
    esoure";
                            string dllstr = string.Format(resource + "\wkhtmltopdf.exe");
    
                            string s = @" -L 0 -R 0 --header-spacing 15 " + url + "  " + savepath;
                            ProcessStartInfo startInfo = new ProcessStartInfo(dllstr, s);
                            p.StartInfo = startInfo;
                            p.StartInfo.UseShellExecute = false;
                            p.StartInfo.CreateNoWindow = true;
                            p.Start();
                            p.WaitForExit();
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
     
    3.效果图
     
    image
     
    ===小小提示===

    (1)使用wkhtmltopdf时,PDF保存的文件夹不能有非Ansi字符,如中文、日文等,且转换gb2312、韩文charset、日文charset等非utf-8ansi等网页时,会出现乱码

    (2)网页上图片无法正确显示是由于图片有链接

  • 相关阅读:
    扩展方法 之 Asp.Net篇【转】
    PowerDesiGner数据库设计
    DataFormatString格式化字符串的总结
    C#序列化对象为XMl于反序列化
    c# 反射初探【转】
    事件驱动的javascript 【转】
    每日一题力扣598
    每日一题力扣283
    每日一题力扣189数组的旋转 取模这个想法好棒!
    每日一题力扣119杨辉三角
  • 原文地址:https://www.cnblogs.com/huangcong/p/5520715.html
Copyright © 2020-2023  润新知