iTextSharp:有效率地將 HTML 轉換為 PDF
使用 iTextSharp 將 HTML 文件轉換為 PDF 格式需要結構化方法。 重要的是要記住,HTML 和 PDF 是不同的格式,因此在轉換過程中需要小心處理。
了解 iTextSharp 的 HTML 處理
iTextSharp 具有解析 HTML 和 CSS 的能力,但缺乏對 ASP.NET、MVC 或 Razor 等框架的支援。 您負責從您選擇的框架中提取 HTML 內容; iTextSharp 不提供此功能。
解析器選擇:HTMLWorker 與 XMLWorker
iTextSharp 提供了兩種 HTML 標籤解析選項:HTMLWorker 和 XMLWorker。 雖然以前使用的是 HTMLWorker,但現在建議使用 XMLWorker 解析器。 XMLWorker 擁有增強的可擴展性和卓越的 CSS 支援。
程式碼範例:使用 HTMLWorker 和 XMLWorker 解析 HTML 標籤
以下 C# 程式碼片段說明如何使用這兩種方法解析 HTML 標籤:
<code class="language-csharp">// Example HTML string html = "..."; // Parsing with HTMLWorker (CSS ignored) using (var htmlWorker = new iTextSharp.text.html.simpleparser.HTMLWorker(doc)) { using (var sr = new StringReader(html)) { htmlWorker.Parse(sr); } } // Parsing with XMLWorker (CSS supported) using (var srHtml = new StringReader(html)) { iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, srHtml); }</code>
利用 XMLWorker 進行 CSS 支援
XMLWorker 允許無縫整合 CSS 樣式表。 以下範例示範了這一點:
<code class="language-csharp">string css = "..."; // Convert CSS and HTML strings to memory streams using (var msCss = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(css))) using (var msHtml = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html))) { iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msHtml, msCss); }</code>
重要提示: iTextSharp 對 HTML 和 CSS 功能的支援並不詳盡。 有關支援的功能和限制的全面詳細信息,請參閱官方 iTextSharp 文件。
以上是如何使用 iTextSharp 將 HTML 轉換為 PDF:HTMLWorker 與 XMLWorker?的詳細內容。更多資訊請關注PHP中文網其他相關文章!