HTML生成PDF(c#)

Calling wkhtmltopdf to generate PDF from
HTML
老外最多人加分的那么篇做法,使用wkhtmtopdf(GPL协议)可以望多程序代码,
首先到官网http://code.google.com/p/wkhtmltopdf/downloads/list
找installer.exe下载

wkhtmltopdf,一个并好了底exe文件(C++编写),基本的调用方法是,
wkhtmltopdf.exe http://passport.yupsky.com/ac
count/register e:\yupskyreg.pdf

,可以先行以命令执行测试一下,有另的内需好在命令执行通过wkhtmltopdf
–help查询,如果是超长页的花费,可以用命令

wkhtmltopdf.exe http://passport.yupsky.com/ac
count/register e:\yupskyreg.pdf  -H –outline
(-H是填补加默认标题,–outline是补偿加pdf的左概要啊!)而且好批量生成哦,中间用空格隔开

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
/*倘引用以下命名空间*/
using System.Diagnostics;
using System.IO;

public partial class _Default : System.Web.UI.Page
{

//Button的Click事件(把Url的网页内容转成PDF)
    protected void btn_execute_Click(object sender, EventArgs e)
    {

        //因为Web
是多线程环境,避免甲产生的文本给乙下充斥去,所以档名都用唯一
        string fileNameWithOutExtention = Guid.NewGuid().ToString();

        //执行wkhtmltopdf.exe
        Process p =
System.Diagnostics.Process.Start(@”D:\wkhtmltopdf\wkhtmltopdf.exe”,
@”http://msdn.microsoft.com/zh-cn D:\” + fileNameWithOutExtention +
“.pdf”);

       
//若不加以这等同推行,程序即使会马上行下一样句而办案匪交文件发生意外:System.IO.FileNotFoundException:
找不交文件 ”。
        p.WaitForExit();

        //把文件读上文件流
        FileStream fs = new FileStream(@”D:\” +
fileNameWithOutExtention + “.pdf”, FileMode.Open);
        byte[] file = new byte[fs.Length];
        fs.Read(file, 0, file.Length);
        fs.Close();

        //Response给客户端下载
        Response.Clear();
        Response.AddHeader(“content-disposition”, “attachment;
filename=” + fileNameWithOutExtention + “.pdf”);//强制下载
        Response.ContentType = “application/octet-stream”;
        Response.BinaryWrite(file);

    }
}

在GitHub上发现2只有关的型,其中Pechkin这个类别不需单独安装wkhtmltopdf
,就是.NET的堆栈了。

C# wrapper around excellent wkhtmltopdf console utility 
https://github.com/codaxy/wkhtmltopdf

.NET Wrapper for WkHtmlToPdf static DLL. Allows you to utilize full
power of the libra:https://github.com/gmanny/Pechkin