将HTML转换为PDF时如何保留外观

时间:2009-04-08 21:32:58

标签: asp.net itext pdf-generation

我一直在使用iTextSharp来进行HTML到PDF的转换,总体而言它运行得相当不错,但它似乎不像大多数格式化。

粗体,斜体和下划线都有效,但是,没有任何字体大小,样式或其他信息被尊重,因此导出看起来并不像用于创建格式的HTML那样。 / p>

有谁知道如何

  • 修正iTextSharp导出的方式(下面是我的代码示例)
  • 或者知道一个提供此功能的不同产品,并且不会破坏银行?

这是我的代码:

//Do the PDF thing
Document document = new Document(PageSize.A4);
using (Stream output = new FileStream(Server.MapPath(relDownloadDoc), FileMode.Create, FileAccess.Write, FileShare.None))
using (Stream htmlStream = new FileStream(Server.MapPath(relProcessingDoc), FileMode.Open, FileAccess.Read, FileShare.Read))
using (XmlTextReader reader = new XmlTextReader(htmlStream))
{
    reader.WhitespaceHandling = WhitespaceHandling.None;
    PdfWriter.GetInstance(document, output);
    document.Open();
    Console.ReadLine();
    HtmlParser.Parse(document, reader);
    document.Close();
}

4 个答案:

答案 0 :(得分:3)

尝试WKHTMLTOPDF。

这是webkit的开源实现。两者都是免费的。

我们设置了一个小教程here

答案 1 :(得分:1)

Convert HTML + CSS to PDF with PHP?我发现了Prince XMLclients for lots of languages包含了.Net平台。

这是一款出色的转换器,虽然商用且不便宜。关于它有一个Google Tech Talk。据称,Google uses it for Google Docs。它的渲染引擎也通过了Acid2测试。

如果您想要高质量的HTML到PDF转换,并且愿意花费大约3800美元购买服务器许可证,那就不用再寻找了。坦率地说,我认为做其他任何事情以及做Prince所做的事情的成本将很快超过所涉及的成本。开发人员的时间很长。

答案 2 :(得分:0)

我曾使用pd4ml来做一些事情。它似乎工作得很好。

以下是pd4ml支持的列表html标签/属性:http://pd4ml.com/html.htm

答案 3 :(得分:0)

单个服务器许可证的ActivePDF为375美元,并且表现非常出色。我们以前曾在客户项目中使用过,而且非常棒。

http://www.activepdf.com/products/serverproducts/webgrabber/index.cfm

编辑:没关系,这取决于他们的另一个产品,售价1,400美元。认为它会比其他一些建议更便宜。几分钟的研究提出了以下替代方案:

低于500美元:

http://www.websupergoo.com/abcpdf-1.htm(您需要专业版才能保留尽可能多的格式。)