iTextSharp-编写HTML到pdf文档

本文关键字:pdf 文档 HTML 编写 iTextSharp- | 更新日期: 2023-09-27 18:29:15

我已经尽了最大努力让它发挥作用,但网上关于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应用程序

iTextSharp-编写HTML到pdf文档

我在你的帖子中看到了两个单独的问题:

(1)iTextSharp的XML Worker在哪里

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

首先下载itextsharp和xmlworker,并确保版本号对应。

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

我上一次更新这些例子是在上周末,所以说它们已经过时是不公平的。也许你没有搜索官方网站:http://itextpdf.com/sandbox/xmlworker

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

  • iText部分HTML呈现
  • 使用XMLWorker和itext解析html时,如何向pdftable添加单元格间距
  • RowSpan在iTextSharp中不工作

当然,这些例子是Java中的iText例子,但如果你浏览这些例子,你会在StackOverflow上找到相应问题的链接,其中许多问题都是关于Java中的iTextSharp的。将Java示例移植到C#是相当容易的。

您需要调用writer.close()