IronPDF For Java 與 Qoppa Software – Java PDF 庫的比較
PDF文件是共享文件和資訊的常用格式。 有很多工具可以用來讀取、提取和處理PDF檔案。 Explore IronPDF for Java和 Qoppa PDF 是開發人員用來讀取 PDF 檔案的兩款流行工具。 本文將提供使用 Java 中的IronPDF將 HTML 轉換為 PDF 的逐步指南,以便有效率地讀取和操作 PDF 文件,包括範例程式碼。
在 PDF 處理領域,有兩個流行的工具脫穎而出: IronPDF和 Qoppa PDF。 這兩款工具各有其獨特的功能與特性,但要論選擇最佳 PDF 工具, IronPDF更勝一籌。
IronPDF 適用於 Java 是一款功能強大的 PDF 工具,可用於建立、讀取和操作 PDF 文件,您可以立即開始使用。 透過IronPDF,開發人員可以輕鬆地將 PDF 功能整合到他們的應用程式中,而無需任何第三方軟體。
另一方面,Qoppa PDF 是一款功能強大的 PDF 工具,可讓使用者建立、編輯和操作 PDF 檔案。 Qoppa PDF 提供多種功能,包括數位簽章、表單填寫和編輯。
1. 安裝IronPDF和 Qoppa PDF

學習如何在 Java 中安裝IronPDF和 Qoppa PDF,這是一個簡單的過程,可以使用NuGet套件管理器完成。 安裝完成後,開發人員可以使用這些強大的程式庫來建立、編輯和操作 PDF 文件。
1.1. 在 Java 中安裝IronPDF

要在 Java 專案中包含IronPDF庫,有兩種方法可用:
- 在 Maven 配置的 Java 專案中新增IronPDF作為依賴項。
- 下載IronPDF JAR 檔案並手動將其新增至專案類路徑。
以下章節將簡要介紹這兩種安裝方法。
選項 1:將IronPDF安裝為Maven依賴項涉及將必要的構件新增至 Java 專案的 pom.xml 檔案的依賴項部分。
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2023.1.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.32</version>
</dependency>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2023.1.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.32</version>
</dependency>
第一個工件引用了最新版本的Java IronPDF庫,而第二個工件引用了 SLF4J 實作。 IronPDF渲染引擎需要此依賴項才能在運行期間產生日誌訊息。 如果不需要日誌記錄,程式設計師可以用其他日誌記錄提供者(如 Logback 和 Log4J)來取代此依賴項,或完全省略它。
若要取得上述程式庫的最新版本,請在 Java 專案根目錄的終端機中執行 mvn install 指令。
選項 2:或者,不想使用Maven或其他依賴管理系統的開發人員可以手動下載IronPDF庫的 JAR 檔案(以及可選的 SLF4J 實作),並將其新增至專案的類別路徑。
要下載IronPDF JAR 文件,請直接從Maven儲存庫存取它。
1.2. 在 Java 中安裝 Qoppa PDF

Qoppa PDF 是一個用於在 Java 應用程式中處理 PDF 檔案的第三方程式庫。
Qoppa Java PDF 庫以工件的形式提供,並由 Qoppa Software 託管在Maven儲存庫中。 只需對 POM 檔案進行少量修改,即可輕鬆將 Qoppa PDF 功能整合到您的Maven專案和應用程式中。
下面可以看到 Qoppa 的Maven倉庫的詳細資訊以及已發布構件的依賴項。
以下是 Qoppa 倉庫設定以及要包含在Maven pom.xml 文件中的位置:
<repositories>
<repository>
<id>QoppaSoftware</id>
<name>Qoppa Software</name>
<url>http://download.qoppa.com/maven</url>
</repository>
</repositories>
<repositories>
<repository>
<id>QoppaSoftware</id>
<name>Qoppa Software</name>
<url>http://download.qoppa.com/maven</url>
</repository>
</repositories>
你可以將 Qoppa 的 JAR 檔案之一作為本機檔案加入你的Maven專案中,以此作為使用 Qoppa Software 的Maven儲存庫的替代方案。 因此,例如,如果您想將 jPDFEditor 新增為本機 JAR,您可以將該檔案儲存在給定的系統路徑中,例如 $project.basedir/src/main/resources/,然後使用下方列出的依賴項新增 jPDFEditor。
<dependencies>
<dependency>
<groupId>com.qoppa</groupId>
<artifactId>jPDFEditor</artifactId>
<version>2021R1.01</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/jPDFEditor.jar</systemPath>
</dependency>
</dependencies>
<dependencies>
<dependency>
<groupId>com.qoppa</groupId>
<artifactId>jPDFEditor</artifactId>
<version>2021R1.01</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/jPDFEditor.jar</systemPath>
</dependency>
</dependencies>
2. 使用IronPDF處理 PDF
2.1. 使用IronPDF處理 PDF
IronPDF是一款功能強大的工具,它使開發人員能夠在遵循文件工作流程的同時處理和操作 PDF 文件。 該工具的最新版本為最終用戶提供了各種組件和功能,以滿足他們讀取和寫入 PDF 文件的需求。 在本文中,我們將探討如何使用IronPDF讀取和寫入 PDF 檔案。
首先,開發人員必須安裝IronPDF 適用於 Java,然後匯入必要的類別並開始讀取 PDF 檔案。
2.2. 使用IronPDF讀取 PDF 文件
安裝IronPDF後,我們可以在專案中使用它的類別和 Apache Tika 解析器。 要在 Java 中讀取現有的 PDF 文件,我們可以使用以下程式碼:
import com.ironsoftware.ironpdf.*;
public class ReadPDFExample {
public static void main(String[] args) {
// Load the PDF document
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
// Extract all the text from the document
String text = pdf.extractAllText();
// Output the extracted text
System.out.println(text);
}
}
import com.ironsoftware.ironpdf.*;
public class ReadPDFExample {
public static void main(String[] args) {
// Load the PDF document
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
// Extract all the text from the document
String text = pdf.extractAllText();
// Output the extracted text
System.out.println(text);
}
}

在這段程式碼中,PdfDocument.fromFile 開啟 PDF 文檔,Paths.get 取得文件路徑。 extractAllText 方法讀取文件中的所有文字。
2.3. 讀取特定頁面的文本
要從特定頁面讀取文本,我們可以使用 extractTextFromPage 方法。 例如,要從 PDF 文件的第二頁提取文本,我們可以使用以下程式碼:
public class ReadSpecificPageExample {
public static void main(String[] args) {
// Load the PDF document
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
// Extract text from the second page (page index starts at 0)
String text = pdf.extractTextFromPage(PageSelection.singlePage(1));
// Output the extracted text from the specific page
System.out.println(text);
}
}
public class ReadSpecificPageExample {
public static void main(String[] args) {
// Load the PDF document
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
// Extract text from the second page (page index starts at 0)
String text = pdf.extractTextFromPage(PageSelection.singlePage(1));
// Output the extracted text from the specific page
System.out.println(text);
}
}
IronPDF在firstPage 、 lastPage 、 allPages 。
輸出

2.4. PDF文件的URL
我們也可以使用IronPDF將網頁轉換為 PDF,然後從中提取文字。 以下程式碼根據 URL 產生 PDF 文件,並提取網站中的所有文字:
public class UrlToPdfExample {
public static void main(String[] args) {
// Render the website as a PDF
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://unsplash.com/");
// Extract all text from the generated PDF
String text = pdf.extractAllText();
// Output the extracted text
System.out.println("Text extracted from the website: " + text);
}
}
public class UrlToPdfExample {
public static void main(String[] args) {
// Render the website as a PDF
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://unsplash.com/");
// Extract all text from the generated PDF
String text = pdf.extractAllText();
// Output the extracted text
System.out.println("Text extracted from the website: " + text);
}
}

2.5. 從PDF中擷取影像
此外, IronPDF也可用於從 PDF 文件中提取影像。 以下程式碼演示了圖像提取過程:
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import javax.imageio.ImageIO;
public class ExtractImagesExample {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("YOUR LICENSE KEY HERE");
// Load the PDF document
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
try {
// Extract all images from the PDF document
List<BufferedImage> images = pdf.extractAllImages();
// Output number of images extracted
System.out.println("Number of images extracted from the website: " + images.size());
// Save each extracted image to a file
int i = 0;
for (BufferedImage image : images) {
ImageIO.write(image, "PNG", Files.newOutputStream(Path.of("assets/extracted_" + ++i + ".png")));
}
} catch (Exception exception) {
System.out.println("Failed to extract images from the website");
exception.printStackTrace();
}
}
}
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import javax.imageio.ImageIO;
public class ExtractImagesExample {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("YOUR LICENSE KEY HERE");
// Load the PDF document
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
try {
// Extract all images from the PDF document
List<BufferedImage> images = pdf.extractAllImages();
// Output number of images extracted
System.out.println("Number of images extracted from the website: " + images.size());
// Save each extracted image to a file
int i = 0;
for (BufferedImage image : images) {
ImageIO.write(image, "PNG", Files.newOutputStream(Path.of("assets/extracted_" + ++i + ".png")));
}
} catch (Exception exception) {
System.out.println("Failed to extract images from the website");
exception.printStackTrace();
}
}
}

3. 使用 Qoppa PDF 處理 PDF 文件
Qoppa PDF 是一款受歡迎的 PDF 處理工具,它為使用者提供了一套強大的元件來處理 PDF 檔案。 本文將探討如何使用 Java 中的 Qoppa PDF 讀取和寫入 PDF 檔案。
首先,開發者必須下載 Qoppa PDF JAR 檔案並將其新增至專案的類別路徑。 新增 JAR 檔案後,開發人員可以匯入必要的類別並開始讀取 PDF 檔案。

3.1. 使用 Qoppa PDF 閱讀 PDF 文件
使用 Java 中的 Qoppa PDF 讀取 PDF 檔案可以透過以下範例程式碼實現:
import com.qoppa.pdf.PDFImages;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.awt.Font;
import java.io.File;
import javax.imageio.ImageIO;
public class ReadPdfWithQoppa {
public static void main(String[] args) {
try {
// Load the document
PDFImages pdfDoc = new PDFImages("input.pdf", null);
// Loop through pages
for (int count = 0; count < pdfDoc.getPageCount(); ++count) {
// Get an image of the PDF page at a resolution of 150 DPI
BufferedImage pageImage = pdfDoc.getPageImage(count, 150);
// Create a Graphics 2D from the page image
Graphics2D g2d = pageImage.createGraphics();
// Modify BufferedImage using drawing functions available in Graphics2D
// Here is an example on how to add a watermark
g2d.setFont(new Font("sansserif", Font.PLAIN, 200));
g2d.rotate(Math.toRadians(45));
g2d.setColor(new Color(128, 128, 128, 128));
g2d.drawString("Watermark", 300, g2d.getFontMetrics().getMaxDescent());
// Save the image as a JPEG
File outputFile = new File("output_" + count + ".jpg");
ImageIO.write(pageImage, "JPEG", outputFile);
System.out.println("Page " + count + " processed.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
import com.qoppa.pdf.PDFImages;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.awt.Font;
import java.io.File;
import javax.imageio.ImageIO;
public class ReadPdfWithQoppa {
public static void main(String[] args) {
try {
// Load the document
PDFImages pdfDoc = new PDFImages("input.pdf", null);
// Loop through pages
for (int count = 0; count < pdfDoc.getPageCount(); ++count) {
// Get an image of the PDF page at a resolution of 150 DPI
BufferedImage pageImage = pdfDoc.getPageImage(count, 150);
// Create a Graphics 2D from the page image
Graphics2D g2d = pageImage.createGraphics();
// Modify BufferedImage using drawing functions available in Graphics2D
// Here is an example on how to add a watermark
g2d.setFont(new Font("sansserif", Font.PLAIN, 200));
g2d.rotate(Math.toRadians(45));
g2d.setColor(new Color(128, 128, 128, 128));
g2d.drawString("Watermark", 300, g2d.getFontMetrics().getMaxDescent());
// Save the image as a JPEG
File outputFile = new File("output_" + count + ".jpg");
ImageIO.write(pageImage, "JPEG", outputFile);
System.out.println("Page " + count + " processed.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.2. 使用 Qoppa PDF 編寫 PDF 文件
使用 Qoppa PDF 在 Java 中編寫 PDF 檔案可以透過其 API 完成:
/*
* This sample Java program uses jPDFWriter
* to create a new PDF file, add a page to it
* and draw an image and text on the page.
*/
package jPDFWriterSamples;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.io.File;
import javax.imageio.ImageIO;
import com.qoppa.pdfWriter.PDFDocument;
import com.qoppa.pdfWriter.PDFGraphics;
import com.qoppa.pdfWriter.PDFPage;
public class CreatePDFWithTextAndImage {
public static void main(String [] args) {
try {
// Create a new PDF document
PDFDocument pdfDoc = new PDFDocument();
// Create a PageFormat of standard letter size with no margins
Paper paper = new Paper();
paper.setSize(8.5 * 72, 11 * 72);
paper.setImageableArea(0, 0, 8.5 * 72, 11 * 72);
PageFormat pf = new PageFormat();
pf.setPaper(paper);
// Create a new page and add it to the PDF
PDFPage page = pdfDoc.createPage(pf);
pdfDoc.addPage(page);
// Get graphics from the page to draw content
PDFGraphics g2d = (PDFGraphics) page.createGraphics();
// Read an image (could be png, jpg, etc.)
BufferedImage image = ImageIO.read(new File("C:\\photo.jpg"));
// Draw the image on the page
g2d.drawImage(image, 0, 0, null);
// Set the font and color for the text
g2d.setFont(PDFGraphics.HELVETICA.deriveFont(24f));
g2d.setColor(Color.BLUE);
// Draw text on the graphics object of the page
g2d.drawString("NEW TEXT", 200, 30);
// Save the document to a file
pdfDoc.saveDocument("C:\\output.pdf");
System.out.println("PDF created successfully.");
} catch (Throwable t) {
System.out.println("Error creating PDF.");
t.printStackTrace();
}
}
}
/*
* This sample Java program uses jPDFWriter
* to create a new PDF file, add a page to it
* and draw an image and text on the page.
*/
package jPDFWriterSamples;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.io.File;
import javax.imageio.ImageIO;
import com.qoppa.pdfWriter.PDFDocument;
import com.qoppa.pdfWriter.PDFGraphics;
import com.qoppa.pdfWriter.PDFPage;
public class CreatePDFWithTextAndImage {
public static void main(String [] args) {
try {
// Create a new PDF document
PDFDocument pdfDoc = new PDFDocument();
// Create a PageFormat of standard letter size with no margins
Paper paper = new Paper();
paper.setSize(8.5 * 72, 11 * 72);
paper.setImageableArea(0, 0, 8.5 * 72, 11 * 72);
PageFormat pf = new PageFormat();
pf.setPaper(paper);
// Create a new page and add it to the PDF
PDFPage page = pdfDoc.createPage(pf);
pdfDoc.addPage(page);
// Get graphics from the page to draw content
PDFGraphics g2d = (PDFGraphics) page.createGraphics();
// Read an image (could be png, jpg, etc.)
BufferedImage image = ImageIO.read(new File("C:\\photo.jpg"));
// Draw the image on the page
g2d.drawImage(image, 0, 0, null);
// Set the font and color for the text
g2d.setFont(PDFGraphics.HELVETICA.deriveFont(24f));
g2d.setColor(Color.BLUE);
// Draw text on the graphics object of the page
g2d.drawString("NEW TEXT", 200, 30);
// Save the document to a file
pdfDoc.saveDocument("C:\\output.pdf");
System.out.println("PDF created successfully.");
} catch (Throwable t) {
System.out.println("Error creating PDF.");
t.printStackTrace();
}
}
}
4. 為什麼選擇IronPDF而不是 Qoppa PDF
雖然兩款工具都很有用,但IronPDF在易用性和功能性方面更勝一籌。 以下是IronPDF成為處理PDF文件的最佳選擇的部分原因:
4.1. 簡潔性
IronPDF的主要優勢之一就是它的簡潔性。 IronPDF擁有簡單易用的 API,即使是初學者也能輕鬆上手。 開發人員只需幾行程式碼即可輕鬆建立和修改 PDF 文件。 相較之下,Qoppa PDF 的 API 則更為複雜,這可能會讓新用戶感到害怕。
4.2 相容性
IronPDF與多種平台和框架相容,包括 Java、 .NET、 ASP.NET和.NET Core。 IronPDF也支援多種文件格式,包括 HTML、CSS 和 SVG。 這使得開發人員可以輕鬆地將IronPDF整合到他們現有的應用程式中。
相較之下,Qoppa PDF 除了 Java 平台外,與其他平台的兼容性有限。 對於使用其他程式語言的開發人員來說,這可能是一個缺點。
4.3 性能
IronPDF 的設計宗旨是快速且高效,即使處理大型 PDF 文件也能如此。 IronPDF使用最佳化的演算法,確保 PDF 操作快速且流暢地完成。 對於需要處理大量 PDF 文件的應用程式來說,這一點尤其重要。
即使處理大型 PDF 文件,IronPDF 的性能也令人印象深刻。 這是由於 IronPDF 的最佳化演算法和高效的記憶體管理所致。
5. 定價和許可
在定價和許可方面, IronPDF和 Qoppa PDF 採取了不同的方法。 在本文中,我們將比較這兩款工具的定價和許可,並優先考慮IronPDF。
5.1 IronPDF定價和許可
IronPDF提供簡單透明的定價模式,價格根據使用該工具的開發人員數量而定。 您可以購買單一開發人員授權、開發人員團隊授權或擁有無限開發人員的Enterprise。
購買許可證後,您可以在任意數量的專案中使用IronPDF ,並且您將獲得一年的免費更新和技術支援。 第一年結束後,您可以選擇以折扣價續約許可證。
5.2. Qoppa PDF 定價與許可
Qoppa PDF 提供多種許可選項,包括永久許可、年度許可和訂閱許可。
在定價和許可方面, IronPDF提供了一種更簡單、更透明的方法。 定價基於使用該工具的開發人員數量,沒有任何隱藏費用或額外成本。

6. 結論
總之, IronPDF是處理 PDF 文件的最佳選擇。 IronPDF 的簡潔性、相容性和高效能使其成為需要處理 PDF 文件的開發人員的強大工具。 雖然 Qoppa PDF 有其獨特的功能,但IronPDF為 PDF 處理提供了一個更好的整體解決方案。 IronPDF提供豐富的文件和支持,使開發人員能夠輕鬆學習和使用該工具。 IronPDF與各種平台和框架都具有高度相容性,使其成為開發人員的多功能工具。
另一方面,Qoppa PDF 的設計以靈活性和易用性為核心,提供了廣泛的自訂選項,使開發人員能夠根據自己的特定需求自訂程式庫。 它具備支援 3D PDF、OCR 和表單欄位識別等高級功能,使其成為處理複雜 PDF 文件的多功能工具。
如果您正在尋找一款可靠且有效率的 PDF 處理工具, IronPDF是您的理想選擇。
IronPDF軟體包提供具競爭力的許可和支持,且無持續費用。 IronPDF也支援多個平台,而且價格統一!
如果您還不是IronPDF 的客戶,您可以造訪IronPDF的免費試用版,以了解所有可用的功能。 如果您購買全套Iron Suite產品,您可以用兩件產品的價格獲得全部五件產品。 有關IronPDF許可的更多詳細信息,請參閱此綜合軟體包概述以查看完整的軟體包資訊。
常見問題解答
IronPDF和 Qoppa PDF 的主要區別是什麼?
IronPDF以其簡潔性和跨平台相容性而聞名,支援 Java、 .NET和ASP.NET等多種平台,而IronPDF PDF 主要針對 Java 用戶。 IronPDF 還提供簡單易用的 API,並針對速度進行了最佳化,能夠有效地處理大型 PDF 文件。
如何在Java中將HTML轉換為PDF?
您可以使用IronPDF在 Java 中將 HTML 轉換為 PDF,只需使用其專為 HTML 轉 PDF 而設計的方法即可。 IronPDF 提供逐步指南和範例程式碼,以簡化此流程。
我可以使用IronPDF從 PDF 文件中提取文字和圖像嗎?
是的, IronPDF可讓您從 PDF 文件中提取文字和圖像。它提供高效的文字擷取功能,並提供提取圖像並單獨保存的工具。
IronPDF是否容易整合到 Java 專案中?
是的,可以透過將IronPDF新增為 Maven 依賴項或手動將 JAR 檔案新增至專案類路徑中,輕鬆地將其整合到 Java 專案中。
IronPDF有哪些定價模式?
IronPDF提供透明且靈活的定價模式,價格依開發人數而定。無論是單一開發者、團隊或企業,均可獲得相應的許可,且無任何隱藏費用。
IronPDF是否提供任何進階 PDF 功能?
IronPDF 的優勢在於其簡潔性和高效能,同時也提供 HTML 轉 PDF、文字擷取和影像處理等功能。然而,它並不專注於 Qoppa 提供的 3D PDF 和 OCR 等高級功能。
我可以在購買前試用IronPDF嗎?
是的, IronPDF提供免費試用版,使用者可以藉此體驗其各項功能。此試用版有助於開發者在購買前評估產品。
為什麼開發者會選擇IronPDF而不是 Qoppa PDF?
開發IronPDF可能會因為IronPDF的易用性、跨平台相容性、高效性能和簡潔明了的 API 而選擇它而不是 Qoppa PDF。 IronPDF 還提供極具競爭力的價格和強大的技術支持,使其成為眾多開發者的理想選擇。




