把页面导出生成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(); 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

页面导出生成pdf,使用wkhtmltopdf第三方工具的更多相关文章

  1. rails应用页面导出为pdf文档

    1.下载安装wkhtmltox https://wkhtmltopdf.org/downloads.html   2.gemfile添加 gem 'pdfkit' #页面导出pdf gem 'wkht ...

  2. Vue 页面导出成PDF文件

    注意事项 如果导出的页面中设计到图片或者其他文件跨域文件,需要后端服务配合 安装依赖 npm install html2Canvas --save npm install jspdf--save 封装 ...

  3. vue将页面导出成pdf

    npm i jspdf-html2canvas prinOut(){ // 导出pdf let page = document.querySelector('.app-main'); // page ...

  4. 页面直接导出为PDF文件,支持分页与页边距

    将WEB页面直接导出为pdf文件是经常会用到的一个功能,尤其是各种报表系统.总结了一下目前几种主流的做法: 在后端用代码生成pdf文件,比如iText一类: 在后端抓取页面并生成pdf文件,比如pha ...

  5. 使用JSP页面生成PDF报表

    转自:http://developer.51cto.com/art/200907/134261.htm 1.iText简介 iText是一个开放源码的Java类库,可以用来方便地生成PDF文件.大家通 ...

  6. Django分析之导出为PDF文件

    最近在公司一直忙着做exe安装包,以及为程序添加新功能,好久没有继续来写关于Django的东西了….难得这个周末清闲,来了解了解Django的一些小功能也是极好的了~ 那今天就来看看在Django的视 ...

  7. html 生成pdf

    HTML生成PDF(c#) 最近因为工作需要,小小的研究了一下HTML生成PDF的方法,这方面的内容很多,但要么是不尽如人意的方法,要么就是那种收费的类库!为了广大.neter的福利,把自己的一点小小 ...

  8. 【jsPDF】jsPDF插件实现将html页面转换成PDF,并下载,支持分页

    1.目的:在前段是 jQuery库 或者 VUE库 或者两者混合库,将html 页面和数据 转换成PDF格式并下载,支持分页 1.项目背景: 对客户报修记录进行分类统计,并生成各种饼图.柱状图.线性图 ...

  9. 使用wkhtmltopdf工具生成pdf

    背景:将前台页面转换成pdf文档保存到服务器 最开始计划使用canvas2pdf在前端进行生成.但是canva2pdf转换的pdf有严重的失真问题,然后决定使用wkhtmltopdf工具进行生成. 思 ...

随机推荐

  1. zIndex属性在IE中无效

    在ie中他的子类的zindex就以父类为准: <!doctype html> <html> <head> <meta charset="utf-8& ...

  2. Python监控网站运行状况

    利用python便捷的类库,可以方便快速实现对网站运行状况的监控,主要包括对80端口(即网站运行端口),其它tcp服务等端口的监控就可以了解服务器大概的一个运行状况,使用的库主要为urllib2及so ...

  3. JVM--Garbage First

    Garbage First Garbage First 简称 G1,它的目标是要做到尽量减少 GC 所导致的应用暂停的时间,让应用达到准实时的效果,同时保持 JVM 堆空间的利用率,其最大的特色在于允 ...

  4. java--String方法

    String : 字符串类型 一.构造函数 String(byte[ ] bytes):通过byte数组构造字符串对象. String(char[ ] value):通过char数组构造字符串对象. ...

  5. 432B - Football Kit

    解题思路: 暴力绝对TLE 一个队伍穿主场球衣的次数 = 这个队伍的客场球衣颜色与其他队主场球衣颜色起冲突的次数 + (n - 1) #include <stdio.h> #include ...

  6. fancyBox简单入门

    1. 下载 fancyBox,解压后根据需要将文件复制到网页文件夹中(建议不要更改目录结构),并在网页源码中引入相应的 css 样式和 js 文件(如果更改了目录结构,引入的时候请调整相应代码,对应它 ...

  7. 一个Java程序的执行过程(转)

    我们手工执行java程序是这样的:  1.在记事本中或者是UE的文本编辑器中,写好源程序:  2.使用javac命令把源程序编译成.class文件:    编译后的.class(类字节码)文件中会包含 ...

  8. 海量数据处理算法—Bloom Filter

    海量数据处理算法—Bloom Filter 1. Bloom-Filter算法简介 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出.它可以用于检索一个元素是否在一个集合中. Bl ...

  9. Python中的循环与跳出

    --start-- for循环: for i in range(3): user_input = input("Your username:") passwd = int(inpu ...

  10. 基于visual Studio2013解决算法导论之011快排改良

     题目 快排改良 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <malloc.h> #in ...