IronPDF For Java 與 Qoppa Software – Java PDF 庫的比較
PDF文件是分享文件和資訊的一種流行格式。 有許多工具可以用來讀取、提取和操作PDF文件。 探索IronPDF for Java和Qoppa PDF是開發人員用來讀取PDF文件的兩個流行工具。 本文將提供使用IronPDF在Java中進行HTML到PDF轉換的逐步指南,以有效讀取和操作PDF文件,包括範例程式碼。
在PDF操作的世界中,兩個流行工具脫穎而出:IronPDF和Qoppa PDF。 這兩個工具都有其獨特的功能和能力,但在選擇最佳PDF工具時,IronPDF遙遙領先。
開始使用IronPDF for 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 Library,您有兩種方法可用:
- 將IronPDF作為依賴項新增到配置為Maven的Java專案中。
- 下載IronPDF的JAR文件並手動將其新增到專案classpath中。
以下部分將簡要解釋這兩種安裝方法。
選項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>
首個工件引用了IronPDF library for Java的最新版本,而第二個工件則引用了一個SLF4J的實現。 這個依賴項是必須的,以便IronPDF渲染引擎在其運行過程中產生日誌訊息。 程式設計師可以用其他日誌提供者如Logback和Log4J替代此依賴項,或者完全省略它如果不需要日誌。
要獲取上述程式庫的最新版本,請在Java專案根目錄的終端中執行mvn install命令。
選項2:或者,不想使用Maven或其他依賴管理系統的開發人員可以手動下載IronPDF Library的JAR文件(以及可選的SLF4J實現)並將其新增到其專案的classpath。
要下載IronPDF JAR文件,請直接從Maven Repository存取它。
1.2. 在Java中安裝Qoppa PDF

Qoppa PDF是一個第三方程式庫用於在Java應用程式中處理PDF文件。
Qoppa Java PDF程式庫以工件形式提供,並由Qoppa Software在Maven Repository中託管。 只需進行少量的POM文件修改,您就可以將Qoppa PDF能力簡單地整合到您的Maven專案和應用程式中。
Qoppa的Maven倉庫詳細資訊和已發佈工件的依賴項可以在下方看到。
用於在您的Maven pom.xml 文件中包含Qoppa倉庫設置和位置如下所示:
<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。
<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 for 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);
}
}

在此程式碼中,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在allPages。
輸出

2.4. URL到PDF
我們還可以使用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文件。 在本文中,我們將探索如何使用Qoppa PDF在Java中讀取和寫入PDF文件。
開發人員必須首先下載Qoppa PDF的JAR文件並將其新增到專案的classpath。 新增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文件
在Java中使用Qoppa PDF寫入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文件的應用程式尤其重要。
IronPDF的性能令人印象深刻,即使在處理大型PDF文件時也是如此。 這是由於IronPDF的優化算法和高效的内存管理。
5. 定價和授權
在定價和授權方面,IronPDF和Qoppa PDF採取了不同的方法。 在本文中,我們將比較這兩個工具的定價和授權,並偏向IronPDF。
5.1. IronPDF的定價和授權
IronPDF提供了一個簡單透明的定價模式,基於使用工具的開發人員數量。 您可以購買一個開發人員的授權、開發人員團隊的授權,或者無限開發人員的企業授權。
購買授權後,您可以在任何數量的專案中使用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,而Qoppa PDF主要以Java為中心。IronPDF還提供簡單的API,並針對速度進行優化,能夠高效處理大型PDF文件。
如何在 Java 中將 HTML 轉換為 PDF?
您可以使用IronPDF在Java中將HTML轉換為PDF,利用其設計的HTML到PDF轉換方法。IronPDF提供分步指南和範例程式碼以便於過程。
我可以使用IronPDF從PDF中提取文字和影像嗎?
可以,IronPDF允許您從PDF文件中提取文字和影像。它提供有效處理文字提取的功能,並提供提取影像並單獨儲存的工具。
IronPDF容易整合到Java專案中嗎?
可以,您可以簡單地通過將IronPDF新增為Maven依賴項或手動將JAR文件包含在項目classpath中,讓它整合到Java專案中。
IronPDF有哪些定價模式?
IronPDF提供透明且靈活的定價模式,基於開發者人數。授權提供給單一開發者、團隊或企業,無隱藏成本。
IronPDF提供任何高級PDF功能嗎?
儘管IronPDF以簡單和性能卓越著稱,但它也提供HTML到PDF轉換、文字提取和影像處理的功能。然而,它並未專注於Qoppa所提供的3D PDF和OCR等高級功能。
我可以在購買前試用IronPDF嗎?
可以,IronPDF提供免費試用,允許使用者探索其功能。這個試用幫助開發者在承諾購買前評估產品。
為什麼開發者會選擇IronPDF而非Qoppa PDF?
開發者可能因為IronPDF的易用性、跨平台相容性、高效性能和簡單API而選擇它而非Qoppa PDF。IronPDF還提供競爭力的價格和強大的支援,因此對許多開發者來說是一個有吸引力的選擇。





