zoukankan      html  css  js  c++  java
  • 黄聪: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)网页上图片无法正确显示是由于图片有链接

  • 相关阅读:
    PAT Basic 1077 互评成绩计算 (20 分)
    PAT Basic 1055 集体照 (25 分)
    PAT Basic 1059 C语言竞赛 (20 分)
    PAT Basic 1072 开学寄语 (20 分)
    PAT Basic 1049 数列的片段和 (20 分)
    蓝桥杯BASIC-13 数列排序
    蓝桥杯入门——3.序列求和
    蓝桥杯入门——2.圆的面积
    蓝桥杯入门——1.Fibonacci数列
    树的总结(遍历,BST,AVL原型,堆,练习题)
  • 原文地址:https://www.cnblogs.com/huangcong/p/5520715.html
Copyright © 2011-2022 走看看