• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

HTML生成PDF(c#)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C语言学生管理系统 - 老猫历险记发布时间:2022-07-13
下一篇:
【读书笔记】工厂方法模式代码(C#,C++)发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap