【问题标题】:iTextSharp - Write HTML to pdf documentiTextSharp - 将 HTML 写入 pdf 文档
【发布时间】:2014-12-31 12:41:22
【问题描述】:

我已经尽了最大努力让它工作,但网络上所有关于 iTextSharp 的信息似乎都已经过时了。 (我使用的是 5.5.3 版本)

我有一个简单的字符串变量,其中包含要呈现为 PDF 的 HTML。

有一些使用 XMLWorker / XMLWorkerHelper 的示例,但这些类似乎不再是 iTextSharp 的一部分。 HTMLWorker 仍然可用,但人们抱怨它已经过时了。 (而且也不行)

这是我目前所拥有的:

public byte[] RenderPdf() 
{
   MemoryStream file = new MemoryStream();
   Document document = new Document(this.PageSize);
   PdfWriter writer = PdfWriter.GetInstance(document, file);

   string HTML = GetHTMLFromActionResult();

   document.Open();

   //Missing code here to inject HTML into document variable.

   document.Close();
   return file.ToArray();
}

额外信息:
这是在 .Net Framework 4.5.2 上运行的 C# MVC5 Web 应用程序

【问题讨论】:

标签: c# itextsharp


【解决方案1】:

您需要致电writer.close()

【讨论】:

    【解决方案2】:

    我在您的帖子中看到两个不同的问题:

    (1) iTextSharp 的 XML Worker 在哪里?

    如果你想使用 XML Worker,你需要一个额外的 DLL。我不确定你通常从哪里获得 iTextSharp,但如果你去 SourceForge,你可以清楚地看到这两个项目:http://sourceforge.net/projects/itextsharp/files/

    首先下载itextsharpxmlworker 并确保版本号一致。

    (2) 在哪里可以找到 XML Worker 的文档?

    我上次更新这些示例是在上周末,所以说它们已经过时是不公平的。可能你没搜官网:http://itextpdf.com/sandbox/xmlworker

    我最近添加了一些示例来回答以下问题:

    当然,这些示例是 Java 中的 iText 示例,但是如果您浏览这些示例,您会发现 StackOverflow 上相应问题的链接,其中许多问题与 Java 中的 iTextSharp 有关。将 Java 示例移植到 C# 相当容易。

    【讨论】:

    • 很荣幸您能回复我的询问 Bruno!我得到了 Nuget 的 iTextSharp,我认为它会降低我需要的一切。我没有拉下 XMLWorker。感谢您的回复,我不知道这是一个单独的程序集。我现在也让工人离开 Nuget。我应该可以从这里开始休息了。
    • 嗨布鲁诺。 XMLWorker 对象抱怨有多个 head 标签。我假设这是因为我将完整的 HTML 页面传递给解析器。有没有办法让文档对象不包含自己的 html/head/body 标签?
    • 文档没有自己的 html/head/body 标签。它只查看您传递给解析器的 HTML。该 HTML 是否有两个 head 标签?
    • 存在格式错误的元标记,使解析器认为头部标记有问题。现在生成了 PDF,但没有呈现我的控件,只有标签。似乎 iText 忽略了所有 标签。注意:我使用的是 bootstrap 3.0,我还没有弄清楚如何包含 CSS,不确定这是否是原因的一部分。
    • 确实:PDF 中的表单在技术上与 HTML 中的表单有很大不同(例如:在 PDF 中,您只能有一个 form 标记;在 HTML 中您可以有多个),因此 XML Worker 可以不支持他们。
    猜你喜欢
    • 2013-07-20
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 2016-03-03
    相关资源
    最近更新 更多