使用iText 將HTML 轉換為PDF
問題:不遵守CSS 定位
許多開發人員在使用iText 將HTML 轉換為PDF 時遇到困難,特別是關於使用CSS 放置元素。
HTMLWorker 的限制
HTMLWorker 是iText 的一個已棄用的組件,它有顯著的缺點:
- CSS 支援:它不支援真正的CSS,需要明確的樣式定義碼。
- 已棄用: 中使用的許多類別和方法HTMLWorker 已經過時了。
XMLWorker 的挑戰
XMLWorker,旨在作為通用XML 解析框架,面臨類似的問題:
- 圖像> 沒有ImageProvider 時影像遺失;即使這樣,像float 這樣的CSS屬性也會被忽略。
部分 CSS 支援:- 不完全支援與定位相關的 CSS 樣式。
iText 7 的解決方案和 pdfHTML
為了解決這些缺點,開發了 iText 7 及其 pdfHTML 外掛程式。他們提供了一種簡化的方法:
此程式碼產生所需的 PDF 輸出,並尊重 float 等 CSS 屬性。
public static final String SRC = "src/main/resources/html/sample.html";
public static final String DEST = "target/results/sample.pdf";
public void createPdf(String src, String dest) throws IOException {
HtmlConverter.convertToPdf(new File(src), new File(dest));
}
其他注意事項
授權:- iText 7 在AGPL 下發布,允許在開源專案中免費使用,但需要商業許可適用於閉源應用程式.
舊系統:- 從較舊的 iText 版本遷移到 iText 7 有利於程式碼簡化和麵向未來。
初學者指南:- 對於 iText 7 的新手,建議放棄現有程式碼並重新開始,以簡化轉換過程。
以上是iText 7 和 pdfHTML 如何透過 CSS 定位來解決 HTML 到 PDF 轉換問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!