博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
黄聪:wkhtmtopdf--高分辨率HTML转PDF
阅读量:6643 次
发布时间:2019-06-25

本文共 1671 字,大约阅读时间需要 5 分钟。

下载:

代码篇

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

下面我们来选择一个网页打印下,保存为PDF,而且实现流抛出保存,假设我们选择“

页面截图如:

目标:我们需要做出上面这个效果的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 + @"\resoure";                        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.效果图
 
 
===小小提示===

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

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

转载于:https://www.cnblogs.com/huangcong/p/5520715.html

你可能感兴趣的文章
Azure 网站的新增功能:可配置的环境变量
查看>>
微软开放技术热烈祝贺开源社成立!
查看>>
Download all Apple open source OS X files at once
查看>>
Objective-C点语法
查看>>
iOS应用程序状态切换相关
查看>>
理解AngularJS生命周期:利用ng-repeat动态解析自定义directive
查看>>
Programming Ability Test学习 1029. 旧键盘(20)
查看>>
控制器
查看>>
一些小问题
查看>>
使用python实现往手机发短信(基于twilio)
查看>>
Ubuntu开启Samba服务器,实现文件共享
查看>>
unity编程心得
查看>>
第十篇 javascript基础语法
查看>>
【洛谷团队题目】
查看>>
虚拟机Ubuntu16.04 Server设置NAT方式修改ip
查看>>
zw版【转发·台湾nvp系列Delphi例程】HALCON FastThreshold1
查看>>
深入JVM系列之(3):JavaCore和HeapDump
查看>>
9.12 h5日记
查看>>
使用Silverlight Streaming托管Silverlight应用程序
查看>>
Linux实战教学笔记39:Mha-Atlas-MySQL高可用方案实践(一)
查看>>