将HTML / CSS代码发送到服务器以转换为PDF

时间:2015-07-21 00:35:46

标签: c# html ajax

我正在使用名为GemBoxDocument的工具,该工具可用于将html文件转换为pdf文件。

他们网站上的示例代码显示了如何转换服务器上存在的实际文件(source):

using System;
using System.Linq;
using System.Text;
using GemBox.Document;
using GemBox.Document.Tables;

class Sample
{
    [STAThread]
     static void Main(string[] args)
    {
        // If using Professional version, put your serial key below.
        ComponentInfo.SetLicense("FREE-LIMITED-KEY");

        DocumentModel document = DocumentModel.Load("Reading.html");

       document.Save("Convert.pdf");
    }
}

但是,在我的情况下,我希望能够转换已在浏览器中加载并可能已被编辑的页面。

到目前为止,我已经考虑过通过ajax调用发送HTML内容,如下所示:

  $.ajax({
    url: 'convertToPDF',
    type: 'POST',
    data: {
        html: $("#page").html()
    },
    success: function (data) {

    }
});

"#page"是整个页面的html包装器,包括加载的CSS脚本和图像。

我最初的想法是,我会将html代码发送到服务器,创建一个临时文件,然后将其作为参数传递给.Load()函数。

然而,我不认为我这样做是正确的。 #page具有外部引用的CSS和我认为不会传递给服务器的图像。所以我的问题是,如何将 ALL 加载页面的内容转换为javascript中的单个变量并将其发送到服务器?

1 个答案:

答案 0 :(得分:1)

检查一下:

看看WKHTMLTOPDF。它是开源的,基于webkit和免费。

https://stackoverflow.com/a/1357499/5131888

http://wkhtmltopdf.org/