VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • C#:采用TuesPechkin生成Pdf

1、需求

前段时间有个需求,要求把网页生成pdf,找了各种插件,才决定使用这个TuesPechkin,这个是后台采用C#代码进行生成

2、做法

我要做的是一个比较简单的页面,采用MVC绑定,数据动态加载,页面上给个按钮,点击后请求后台接口,便可以生成pdf文件了

3、实现方式

引入两个相关DLL,TuesPechkin.Wkhtmltox.XXX  根据你当前的系统来选择对应的DLL(一般添加前两个就行),

 

4、生成PDF代码段

先在后台将指定HTML页生成为string字符串,然后调用如下方法即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/// <summary>
/// 生成pdf
/// </summary>
/// <param name="htmlStr">生成内容</param>
/// <param name="path">生成地址</param>
private static void ConvertHtmlTextToPdf(string htmlStr, string filepath)
{
    if (!Directory.Exists(filepath))  //不存在文件夹,创建
        Directory.CreateDirectory(filepath);  //创建新的文件夹
 
    var fileName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".pdf";
    var path = filepath + fileName;
    var document = new HtmlToPdfDocument
    {
        GlobalSettings =
        {
            ProduceOutline = true,
            DocumentTitle = "标题",
            PaperSize = PaperKind.A4, // Implicit conversion to PechkinPaperSize
            Margins =
            {
                All=0,
                Unit = Unit.Centimeters
            }
        },
        Objects =
        {
            new ObjectSettings
            {
                HtmlText =htmlStr,
                WebSettings =new WebSettings
                {
                    DefaultEncoding="UTF-8",
                    LoadImages=true,
                }
            }
        },
    };
 
 
    byte[] buf = GetConverter().Convert(document);
    //直接把result二进制数据写入文件流
    FileStream fs = new FileStream(path, FileMode.OpenOrCreate);
    fs.Write(buf, 0, buf.Length);
    fs.Close();
    IToolset toolset = new PdfToolset();
    toolset.Unload(); 
}

相关教程