wkhtmltopdf 生成pdf

 1    public class PdfHelper
 2     {
 3
 4         static string RootPath
 5         {
 6             get
 7             {
 8                 string AppPath = "";
 9                 HttpContext HttpCurrent = HttpContext.Current;
10                 if (HttpCurrent != null)
11                 {
12                     AppPath = HttpCurrent.Server.MapPath("~");
13                 }
14
15                 return AppPath.Trim(new char[]{‘\\‘});
16             }
17         }
18
19
20         public static void GetPdf(HttpResponseBase response,string pdfUrl)
21         {
22             string fileName = Guid.NewGuid().ToString("N") + ".pdf";
23             string filePath = RootPath + "\\pdfs\\" + fileName;
24             string exePath=RootPath + "\\wkhtmltopdf\\wkhtmltopdf.exe";
25             string args=pdfUrl + " --zoom 1.25 \"" + filePath+"\"";
26
27
28             Process p =new Process();
29             p.StartInfo.FileName = exePath;
30             p.StartInfo.Arguments = args;
31             p.StartInfo.UseShellExecute = false;
32             p.StartInfo.RedirectStandardInput = true;
33             p.StartInfo.RedirectStandardOutput = true;
34             p.StartInfo.RedirectStandardError = true;
35             p.StartInfo.CreateNoWindow = false;
36
37             try
38             {
39                 p.Start();
40                 p.WaitForExit();
41                 p.StandardOutput.ReadToEnd();
42                 p.Close();
43
44                 FileStream fs = new FileStream(filePath, FileMode.Open);
45                 byte[] file = new byte[fs.Length];
46                 fs.Read(file, 0, file.Length);
47                 fs.Close();
48
49
50                 response.Clear();
51                 response.AddHeader("content-disposition", "attachment; filename=" + fileName);
52                 response.ContentType = "application/octet-stream";
53                 response.BinaryWrite(file);
54                 response.Flush();
55
56             }
57             catch
58             {
59
60             }
61
62         }
63     }

对于要打印成pdf的html要求:

1. dom元素的 height/width/margin/padding以及定位,尽量使用百分比的形式。

2. 图片的像素质量尽量高一些,因为生成pdf的过程会有缩放。另外加入html的时候设置显示的高度跟宽度。

3. 对于pdf的分页,可以直接使用一些属性来实现:

<header page-break-before="always"></header>

{page-break-before:always;}//添加到header的dom元素实现换页

<footer page-break-after="always"></footer>                                  
         {page-break-after:always;}  //添加到footer的dom元素实现换页

{page-break-inside:avoid;}

wkhtmltopdf 生成pdf

时间: 2024-08-25 20:42:33

wkhtmltopdf 生成pdf的相关文章

java调用wkhtmltopdf生成pdf文件,美观,省事

最近项目需要导出企业风险报告,文件格式为pdf,于是搜了一大批文章都是什么Jasper Report,iText ,flying sauser ,都尝试了一遍,感觉不是我想要的效果, 需要自己调整好多东西,样式,字体等等,好麻烦,毕竟博主这么懒的人,哈哈.-------jstarseven 言归正传: java生成pdf文件,方式很多,以上提到的哪几种方式具体可以参考这篇文章<讲解很详细>:http://blog.csdn.net/ouyhong123/article/details/2640

WkHtmlToPdf 生成 PDF

1. 首先去http://wkhtmltopdf.org/downloads.html 下载最新版本的安装包 2. 执行安装完成 3. CMD 命令行运行wkhtmltopdf.exe程序生成PDF C:\Program Files\wkhtmltopdf\bin>wkhtmltopdf.exe --orientation Landscape --javascript-delay 5000 c:\BPReport.html c:\BPReport_L.pdf Loading pages (1/6

PHP 生成PDF

一个项目中需要用到网页生成PDF,就是将整个网页生成一个PDF文件, 以前也用过HTML2PDF,只能生成一些简单的HTML代码,复杂的HTML + css 生成的效果惨不忍睹, 百度了一下,发现有个wkhtmltopdf,wkhtmltoimage,下载过来尝试一下,果然不错,可以将网页原封不动的生成为一个PDF文件,完全符合项目需求了. 不过这是一个命令行程序,接下来讲的才是重点了. wkhtmltopdf是一个在命令行执行的程序,PHP可以通过exec,system等来执行命令,我尝试了一

C# html生成PDF遇到的问题,从iTextSharp到wkhtmltopdf

我们的网站业务会生成一个报告,用网页展示出来,要有生成pdf并下载的功能,关键是生成pdf. 用内容一段段去拼pdf,想想就很崩溃,所以就去网上找直接把html生成pdf的方法. 网上资料大部分都是用的iTextSharp的XMLWorkerHelper做的(代码我贴在后面),遇到的问题是,它对css样式的支持比较古老或者说简单,所以重新改了一下我的html样式,div大部分都换成了table等,搞定后运行了一段时间没出什么问题. 但是,最近发现它有一种情况会报错.我的html内容是一个订单,包

使用TCPDF插件生成pdf以及pdf的中文处理

目录(?)[+] 多种多样的pdf开发库 WKHTMLTOPDF 2FPDF 3TCPDF 中文问题 做了这么多年项目,以前只是在别人的项目中了解过PHP生成pdf文件,知道并不难,但是涉及到了pdf开发库,首先介绍pdf库. 多种多样的pdf开发库 1.WKHTMLTOPDF wkhtmltopdf是一个很好的解决方案,基本上可以原样输出html页面中的内容,包括:图片/代码高亮部分css/页头/页尾等.有php和命令行方式,大概思路如下: 1) 先获取所有的远程html,然后生成wkhtml

怎么用PHP在HTML中生成PDF文件

原文:Generate PDF from html using PHP 译文:使用PHP在html中生成PDF 译者:dwqs 利用PHP编码生成PDF文件是一个非常耗时的工作.在早期,开发者使用PHP并借助FPDF来生成PDF文件.但是如今,已经有很多函数库可以使用了,并且能够从你提供的HTML文件生成PDF文档.这让原先耗时的工作变得非常简单了. FPDF是很早就被使用的,其特点如下: FPDF FPDF是一个允许使用纯PHP生成PDF文档的PHP类,换句话说,没有使用PDFlib 函数库.

史上最强php生成pdf文件,html转pdf文件方法

之前有个客户需要把一些html页面生成pdf文件,然后我就找一些用php把html页面围成pdf文件的类.方法是可谓是找了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有达到我要的求. pdflib,FPDF 这两个方法是需要编写程序去生成pdf的,就也是讲不支持直接把html页面转换成pdf:html2pdf这个虽然可以把html页面转换成pdf文 件,但是它只能转换一般简单的html代码,如果你的html内容要的是通过后台新闻编辑器排版的那肯定不行的. 纠结了半

[轉載]史上最强php生成pdf文件,html转pdf文件方法

之前有个客户需要把一些html页面生成pdf文件,然后我就找一些用php把html页面围成pdf文件的类.方法是可谓是找了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有达到我要的求. pdflib,FPDF 这两个方法是需要编写程序去生成pdf的,就也是讲不支持直接把html页面转换成pdf:html2pdf这个虽然可以把html页面转换成pdf文 件,但是它只能转换一般简单的html代码,如果你的html内容要的是通过后台新闻编辑器排版的那肯定不行的. 纠结了半

ruby on rails 中使用pdfkit生成pdf

说是使用pdfkit,其实做工作的还是wkhtmltopdf. 一.新建项目 rails new mypdf --skip-bundle 进入项目:cd mypdf,打开Gemfile:vim Gemfile 修改source为https://ruby.taobao.com 添加:gem 'pdfkit' 运行bundle install 二.配置 在项目目录下的config/initializers里加上pdfkit.rb文件,修改内容为: PDFKit.configure do |confi