在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
今天,開發人員可以受益於不斷改進的技術所帶來的更佳解決方案。
軟體開發過程的未來在於自動化。長期以來,PDF 文件給開發人員帶來了困難。在處理 PDF 文件時 (即,製作內容並將其他格式的內容轉換為 PDF)有許多需要考慮的因素。隨著許多用來幫助讀取、寫入、創建甚至從多種格式轉換PDF的庫的開發,這些需求現在已經得到滿足。
本文將比較兩個對Java開發人員編輯、打印和創建PDF文件最受好評的PDF庫:
在我們轉向PDF轉換和處理的性能消耗之前,將先檢查這兩個圖書館的功能,以確定哪個圖書館最適合您的應用程序。此外,將記錄每個圖書館的時長以供後續研究。
安裝 IronPDF for Java, 您只需將它聲明為一個依賴項。要將 IronPDF 定義為依賴項,請將以下內容添加到您的 pom.xml 中。
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>com.ironsoftware</artifactId>
<version>2024.9.1</version>
</dependency>
注意:您可以手動下載 .jar 檔案:
前往 Maven倉庫2. 提取zip檔案的內容。
建立一個資料夾並複製zip資料夾的內容。
打開Eclipse IDE。
建立一個新的Java專案。
將IronPDF .jar檔案添加到類路徑中。
開發人員可以利用強大的IronPDF PDF庫快速生成、讀取和操作PDF。IronPDF在其核心使用chrome引擎,並提供大量實用且強大的功能,包括能夠將HTML5、JavaScript、CSS和圖像文件轉換為PDF。IronPDF還可以添加獨特的頁眉和頁腳,並精確地創建與網頁瀏覽器中顯示的相同的PDF文件。IronPDF支持各種網頁格式,包括HTML、ASPX、Razor View和MVC。IronPDF的主要特徵如下:
ITextPDF 可以免費下載於 https://itextpdf.com/. 該庫在 AGPL 軟體許可模式下開源。
要將 iText 庫添加到您的應用程式中,請將以下 Maven 儲存庫包含在我們的 pom.xml
文件中。
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.2</version>
</dependency>
直接下載iTextPDF的.jar檔案並直接下載slf4j.jar檔案。要使用這些庫,請將iTextPDF的.jar檔案添加到系統的類路徑中。
在iText for Java中,HTMLConverter
是用來將HTML轉換為PDF的主要類別。
HTMLConverter
有三個主要方法:
convertToDocument
,返回一個Document
對象convertToElements
,返回一個IElement
對象列表convertToPdf
處理將HTML內容轉換為PDF。此方法接受HTML輸入作為String
、File
或InputStream
,並返回File
、OutputStream
或Document
對象。package com.hmkcode;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.html2pdf.HtmlConverter;
public class App
{
public static final String HTML = "<h1>Hello</h1>"
+ "<p>This was created using iText</p>"
+ "<a href='hmkcode.com'>hmkcode.com</a>";
public static void main( String [] args ) throws FileNotFoundException, IOException
{
HtmlConverter.convertToPdf(HTML, new FileOutputStream("string-to-pdf.pdf"));
System.out.println( "PDF Created!" );
}
}
來自 IronPDF 的 PdfDocument
類提供多個靜態方法,允許 Java 開發人員從各種來源生成 HTML 文本。其中一種方法是 PdfDocument.renderHtmlAsPdf
方法,該方法將 HTML 標記字符串轉換為 PDF 文檔。
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
myPdf.saveAs(Paths.get("html_saved.pdf"));
convertToPdf
方法可用於將任何 HTML 文件轉換為 PDF。
圖片和 CSS 文件可以包含在 HTML 文件中。但它們必須在 HTML 文件的相同位置。我們可以使用 ConverterProperties
類來設置引用的 CSS 和圖片的基礎路徑。當 HTML 文件資產位於不同目錄時,這是非常有用的。
考慮包含以下標記的 index.html。
<html>
<head>
<title>HTML to PDF</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>HTML to PDF</h1>
<p>
<span class="itext">itext</span> 7.1.9
<span class="description"> converting HTML to PDF</span>
</p>
<table>
<tr>
<th class="label">Title</th>
<td>iText - Java HTML to PDF</td>
</tr>
<tr>
<th>URL</th>
<td>http://hmkcode.com/itext-html-to-pdf-using-java</td>
</tr>
</table>
</body>
</html>
<html>
<head>
<title>HTML to PDF</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>HTML to PDF</h1>
<p>
<span class="itext">itext</span> 7.1.9
<span class="description"> converting HTML to PDF</span>
</p>
<table>
<tr>
<th class="label">Title</th>
<td>iText - Java HTML to PDF</td>
</tr>
<tr>
<th>URL</th>
<td>http://hmkcode.com/itext-html-to-pdf-using-java</td>
</tr>
</table>
</body>
</html>
以下源代碼將 index.html 文件轉換為 PDF:
package com.hmkcode;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.html2pdf.HtmlConverter;
public class App
{
public static void main( String [] args ) throws FileNotFoundException, IOException
{
HtmlConverter.convertToPdf(new FileInputStream("index.html"),
new FileOutputStream("index-to-pdf.pdf"));
System.out.println( "PDF Created!" );
}
}
IronPDF 的 PdfDocument.renderHtmlFileAsPdf
方法可以將位於電腦上或網絡文件路徑的 HTML 文件轉換為 PDF。
PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("example.html");
myPdf.saveAs(Paths.get("html_file_saved.pdf"));
您可以使用 IronPDF 的 PdfDocument.fromImage
方法將一組圖片渲染成一個 PDF 文件。下面的範例在不同的文件系統路徑上使用此方法來處理一個簡短的圖片列表。
// Create an ArrayList containing the list of images that you want to combine
// into ONE PDF document
Path imageA = Paths.get("directoryA/1.png");
Path imageB = Paths.get("directoryB/2.png");
Path imageC = Paths.get("3.png");
List<Path> imageFiles = new ArrayList<>();
imageFiles.add(imageA);
imageFiles.add(imageB);
imageFiles.add(imageC);
// Convert the three images into a PDF and save them.
PdfDocument.fromImage(imageFiles).saveAs(Paths.get("assets/composite.pdf"));
以下完整的代码示例使用 iText 将当前工作目录中的两个图片转换为一个 PDF 文件。
import java.io.*;
// importing itext library packages
import com.itextpdf.io.image.*;
import com.itextpdf.kernel.pdf.*;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;
public class InsertImagePDF {
public static void main(String [] args) throws IOException {
String currDir = System.getProperty("user.dir");
// Getting path of current working directory
// to create the pdf file in the same directory of
// the running java program
String pdfPath = currDir + "/InsertImage.pdf";
// Creating path for the new pdf file
PdfWriter writer = new PdfWriter(pdfPath);
// Creating PdfWriter object to write the PDF file to
// the path
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating imagedata from image on disk(from given
// path) using ImageData object
ImageData imageDataA = ImageDataFactory.create(
currDir + "/imageA.jpg");
Image imgA = new Image(imageDataA);
ImageData imageDataB = ImageDataFactory.create(
currDir + "/imageB.jpg");
Image imgB = new Image(imageDataB);
// Creating Image object from the imagedata
doc.add(imgA);
doc.add(imgB);
// Adding Image to the empty document
doc.close();
// Close the document
System.out.println("Image added successfully and PDF file created!");
}
}
iTextSharp 是開源的並且是根據 AGLP 授權的。
這可確保任何使用包含iTextSharp的應用程式的人,即使他們透過企業網絡或互聯網使用,也有權獲得應用程式完整的源代碼副本。
如有意將此軟體用於商業應用,請直接聯繫iText洽詢授權的價格。
IronPDF 可免費用於開發,並且可以隨時授權用於商業部署。 授權可用 適用於單個專案的使用、個人開發者、代理商和全球企業,以及 SaaS 和 OEM 再分發。所有授權都包括30天退款保證、一年的產品支持和更新、有效的開發/測試/生產環境授權,並且還包括永久授權。 (一次性購買).
價格方面,Lite 套件的起價為 $749。
iText 和 IronPDF 之間有幾個顯著的區別。
iText 的 API 是圍繞程序模型構建的。在這種模型下操作 PDF 的屬性和內容更加低層次且細緻。雖然這給程式設計師帶來了更多的控制和靈活性,但也需要撰寫更多的代碼來實現用例。
IronPDF 的 API 是為了最佳化開發人員的生產力而設計的。IronPDF 簡化了 PDF 的編輯、操作、創建和其他複雜的任務,開發人員僅需以幾行代碼即可完成。
Iron Software的所有客戶都可以通過兩次點擊購買整個套件。您目前可以購買所有五個庫。 Iron Software 套件以及每個函式庫的持續支援,費用僅為整組中兩個函式庫的價格。