Porównanie IronPDF for Java i iTextPDF itext7 for Java
Dziś programiści mogą korzystać z lepszych rozwiązań dzięki stale udoskonalanej technologii.
Przyszłość procesów tworzenia oprogramowania leży w automatyzacji. Od dawna pliki PDF stanowią wyzwanie dla programistów. Podczas pracy z plikami PDF (tj. tworzenia treści i konwersji treści z innych formatów do PDF) należy wziąć pod uwagę wiele czynników. Dzięki opracowaniu licznych bibliotek przeznaczonych do odczytu, zapisu, tworzenia, a nawet konwersji plików PDF z wielu formatów, potrzeby te są obecnie zaspokojone.
W tym artykule porównamy dwie najlepiej oceniane biblioteki PDF dla programistów Java, służące do edycji, drukowania i tworzenia plików PDF:
- Biblioteka IronPDF Java: biblioteka Java do obsługi plików PDF, która koncentruje się na generowaniu plików PDF z HTML.
- Biblioteka ITextPDF: biblioteka open source, stworzona z myślą o Javie, która skupia się na generowaniu plików PDF za pomocą programowalnego API.
Przed przejściem do omówienia kosztów wydajności związanych z konwersją i obsługą plików PDF przeanalizujemy funkcje obu bibliotek, aby określić, która z nich najlepiej sprawdzi się w Państwa aplikacji. Dodatkowo czas działania każdej biblioteki zostanie zarejestrowany do późniejszych badań.
Instalacja IronPDF Java
Aby zainstalować IronPDF for Java, wystarczy zadeklarować go jako zależność. Aby zdefiniować IronPDF jako zależność, dodaj następujący fragment do pliku pom.xml:
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>YOUR_VERSION_HERE</version>
</dependency>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>YOUR_VERSION_HERE</version>
</dependency>
Uwaga: plik .jar można pobrać ręcznie:
- Przejdź do repozytorium IronPDF for Java dla Maven, aby uzyskać dostęp do strony Maven Repo.
- Rozpakuj zawartość pliku ZIP.
- Utwórz folder i skopiuj do niego zawartość pliku ZIP.
- Otwórz środowisko Eclipse IDE.
- Utwórz nowy projekt Java.
- Dodaj pliki .jar IronPDF do ścieżki klasy.
- Zakończ pracę kreatora projektu. To wszystko!
Funkcje IronPDF
Dzięki solidnej bibliotece IronPDF programiści mogą szybko tworzyć, odczytywać i edytować pliki PDF. IronPDF wykorzystuje silnik Chrome i oferuje bogactwo praktycznych i zaawansowanych funkcji, w tym możliwość konwersji plików HTML5, JavaScript, CSS i obrazów do formatu PDF. IronPDF może również dodawać unikalne nagłówki i stopki oraz tworzyć pliki PDF dokładnie tak, jak wyglądają w przeglądarce internetowej. IronPDF obsługuje różne formaty internetowe, w tym HTML, ASPX, Razor View i MVC. Kluczowe cechy IronPDF są następujące:
- Łatwe tworzenie, odczytywanie i edycja plików PDF za pomocą programów Java.
- Twórz pliki PDF z dowolnego linku URL strony internetowej, który posiada ustawienia dla User-Agents, serwerów proxy, plików cookie, nagłówków HTTP oraz zmiennych formularzy, aby umożliwić logowanie za pomocą formularzy logowania HTML.
- Usuń zdjęcia z istniejących już publikacji w formacie PDF.
- Dodawaj tekst, zdjęcia, zakładki, znaki wodne i inne elementy do plików PDF.
- Łączenie i dzielenie stron z kilku dokumentów PDF.
- Konwertuj pliki typu media, w tym pliki CSS, na dokumenty.
Instalacja ITextPDF Java
ITextPDF jest dostępny za darmo na stronie iTextPDF. Biblioteka ta jest oprogramowaniem typu open source na licencji AGPL.
Aby dodać bibliotekę iText do swojej aplikacji, dodaj następujące repozytorium Maven do pliku pom.xml.
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.2</version>
</dependency>
Pobierz bezpośrednio pliki .jar iTextPDF oraz plik slf4j.jar. Aby korzystać z bibliotek, dodaj pliki .jar iTextPDF do ścieżki klasy systemu.
Funkcje biblioteki IText
- Twórz pliki PDF z HTML, XML i obrazów (png, jpg itp.).
- Dodawaj zakładki, numery stron i znaczniki do dokumentów PDF.
- Podziel plik PDF na wiele plików PDF lub połącz wiele plików PDF w jeden plik PDF.
- Edytuj formularze PDF programowo.
- Dodawaj tekst, obrazy i figury geometryczne do plików PDF.
Konwersja ciągów znaków HTML do plików PDF przy użyciu biblioteki iTextPDF Java
W bibliotece iText dla języka Java HTMLConverter jest główną klasą służącą do konwersji HTML na PDF.
W HTMLConverter istnieją trzy główne metody:
convertToDocument, który zwraca obiektDocument.convertToElements, która zwraca listę obiektówIElement.convertToPdfobsługuje konwersję treści HTML do formatu PDF. Ta metoda akceptuje dane wejściowe HTML w postaciString,FilelubInputStreami zwraca obiektFile,OutputStreamlubDocument.
package com.hmkcode;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.html2pdf.HtmlConverter;
public class App {
// HTML content to be converted to PDF
public static final String HTML = "<h1>Hello</h1>"
+ "<p>This was created using iText</p>"
+ "<a href='http://hmkcode.com'>hmkcode.com</a>";
public static void main(String[] args) throws FileNotFoundException, IOException {
// Convert the HTML content to PDF and save it
HtmlConverter.convertToPdf(HTML, new FileOutputStream("string-to-pdf.pdf"));
System.out.println("PDF Created!");
}
}
package com.hmkcode;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.html2pdf.HtmlConverter;
public class App {
// HTML content to be converted to PDF
public static final String HTML = "<h1>Hello</h1>"
+ "<p>This was created using iText</p>"
+ "<a href='http://hmkcode.com'>hmkcode.com</a>";
public static void main(String[] args) throws FileNotFoundException, IOException {
// Convert the HTML content to PDF and save it
HtmlConverter.convertToPdf(HTML, new FileOutputStream("string-to-pdf.pdf"));
System.out.println("PDF Created!");
}
}
Konwersja ciągów znaków HTML do plików PDF przy użyciu IronPDF Java
Klasa PdfDocument z biblioteki IronPDF oferuje wiele metod statycznych, które pozwalają programistom Java generować tekst HTML z różnych źródeł. Jedną z takich metod jest metoda PdfDocument.renderHtmlAsPdf, która konwertuje ciąg znaków znaczników HTML na dokument PDF.
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
public class IronPdfExample {
public static void main(String[] args) {
// Set the license and log path
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Convert the HTML content to a PDF
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
// Save the generated PDF
myPdf.saveAs(Paths.get("html_saved.pdf"));
}
}
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
public class IronPdfExample {
public static void main(String[] args) {
// Set the license and log path
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Convert the HTML content to a PDF
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
// Save the generated PDF
myPdf.saveAs(Paths.get("html_saved.pdf"));
}
}
Konwersja plików HTML do formatu PDF za pomocą biblioteki ITextPDF Java
Metoda convertToPdf może służyć do konwersji dowolnego pliku HTML do formatu PDF.
Plik HTML może zawierać obrazy i pliki CSS. Muszą one jednak znajdować się w tej samej lokalizacji co plik HTML. Możemy użyć klasy ConverterProperties, aby ustawić ścieżkę bazową dla odwołanych plików CSS i obrazów. Jest to przydatne, gdy zasoby plików HTML znajdują się w różnych katalogach.
Rozważmy plik index.html zawierający następujący kod.
<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>
Poniższy kod źródłowy konwertuje plik index.html na format 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 {
// Convert the HTML file to PDF and save it
HtmlConverter.convertToPdf(new FileInputStream("index.html"),
new FileOutputStream("index-to-pdf.pdf"));
System.out.println("PDF Created!");
}
}
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 {
// Convert the HTML file to PDF and save it
HtmlConverter.convertToPdf(new FileInputStream("index.html"),
new FileOutputStream("index-to-pdf.pdf"));
System.out.println("PDF Created!");
}
}
Konwersja plików HTML do formatu PDF za pomocą IronPDF for Java
Metoda PdfDocument.renderHtmlFileAsPdf firmy IronPDF konwertuje pliki HTML znajdujące się na komputerze lub w sieciowej ścieżce plików.
import com.ironsoftware.ironpdf.*;
import java.nio.file.Path;
import java.nio.file.Paths;
public class IronPdfExample {
public static void main(String[] args) {
// Convert the HTML file to PDF and save it
PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("example.html");
myPdf.saveAs(Paths.get("html_file_saved.pdf"));
}
}
import com.ironsoftware.ironpdf.*;
import java.nio.file.Path;
import java.nio.file.Paths;
public class IronPdfExample {
public static void main(String[] args) {
// Convert the HTML file to PDF and save it
PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("example.html");
myPdf.saveAs(Paths.get("html_file_saved.pdf"));
}
}
Dodawanie obrazów do plików PDF za pomocą IronPDF for Java
Możesz użyć metody PdfDocument.fromImage IronPDF, aby renderować grupę obrazów do jednego pliku PDF. Poniższy przykład wykorzystuje tę metodę na krótkiej liście obrazów znajdujących się w różnych ścieżkach systemu plików.
import com.ironsoftware.ironpdf.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class IronPdfExample {
public static void main(String[] args) {
// 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"));
}
}
import com.ironsoftware.ironpdf.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class IronPdfExample {
public static void main(String[] args) {
// 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"));
}
}
Dodawanie obrazów do plików PDF za pomocą ITextPDF Java
Poniższy kompletny przykład kodu wykorzystuje bibliotekę iText do konwersji dwóch obrazów znajdujących się w bieżącym katalogu roboczym do jednego pliku PDF.
import java.io.*;
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
String pdfPath = currDir + "/InsertImage.pdf";
// Creating PdfWriter object to write the PDF file to the path
PdfWriter writer = new PdfWriter(pdfPath);
// Creating PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating ImageData from images on disk (from given paths) using ImageDataFactory
ImageData imageDataA = ImageDataFactory.create(currDir + "/imageA.jpg");
Image imgA = new Image(imageDataA);
ImageData imageDataB = ImageDataFactory.create(currDir + "/imageB.jpg");
Image imgB = new Image(imageDataB);
// Adding images to the document
doc.add(imgA);
doc.add(imgB);
// Close the document
doc.close();
System.out.println("Image added successfully and PDF file created!");
}
}
import java.io.*;
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
String pdfPath = currDir + "/InsertImage.pdf";
// Creating PdfWriter object to write the PDF file to the path
PdfWriter writer = new PdfWriter(pdfPath);
// Creating PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating ImageData from images on disk (from given paths) using ImageDataFactory
ImageData imageDataA = ImageDataFactory.create(currDir + "/imageA.jpg");
Image imgA = new Image(imageDataA);
ImageData imageDataB = ImageDataFactory.create(currDir + "/imageB.jpg");
Image imgB = new Image(imageDataB);
// Adding images to the document
doc.add(imgA);
doc.add(imgB);
// Close the document
doc.close();
System.out.println("Image added successfully and PDF file created!");
}
}
Licencjonowanie
iTextSharp jest oprogramowaniem typu open source i jest objęty licencją AGLP.
Gwarantuje to, że każdy, kto korzysta z aplikacji wykorzystującej iTextSharp, ma prawo do pełnej kopii kodu źródłowego aplikacji, nawet jeśli robi to za pośrednictwem sieci firmowej lub Internetu.
Jeśli zamierzasz używać tej biblioteki w aplikacjach biznesowych, skontaktuj się bezpośrednio z iText, aby omówić cenę licencji.
IronPDF jest bezpłatny do celów programistycznych, a na potrzeby wdrożeń komercyjnych zawsze można uzyskać licencję. Szczegóły licencji IronPDF dotyczące użytkowania w ramach pojedynczego projektu, dla indywidualnych programistów, agencji i globalnych korporacji, a także w przypadku redystrybucji w modelu SaaS i OEM. Wszystkie licencje obejmują 30-dniową gwarancję zwrotu pieniędzy, roczną pomoc techniczną i aktualizacje, ważność na środowiska deweloperskie, testowe i produkcyjne, a także licencję stałą (jednorazowy zakup).
Ceny pakietu Lite zaczynają się od $799.
- Programiści mogą korzystać z biblioteki bez ograniczeń w ramach swoich projektów. Jeśli chodzi o ogólne warunki licencji, stawki są bardzo korzystne.
- Bezpłatna, roczna, nieograniczona pomoc techniczna.
- Dostępne są również bezpłatne wersje próbne do celów licencyjnych.
- Wszystkie licencje obejmują 30-dniową gwarancję zwrotu pieniędzy.
- Licencje są ważne we wszystkich środowiskach (programistycznym, testowym, produkcyjnym itp.).
- Licencje obejmują roczną bezwarunkową pomoc techniczną.
- Licencje IronPDF wymagają jednorazowego zakupu.
IronPDF a iText
Istnieje kilka istotnych różnic między iText a IronPDF.
API iText jest oparte na modelu programistycznym. Manipulowanie właściwościami i zawartością plików PDF w tym modelu ma bardziej niski poziom i jest bardziej szczegółowe. Chociaż daje to programistom większą kontrolę i elastyczność, wymaga to również napisania większej ilości kodu w celu wdrożenia konkretnych przypadków użycia.
API IronPDF zostało zaprojektowane z myślą o optymalizacji wydajności programistów. IronPDF upraszcza edycję, modyfikację i tworzenie plików PDF oraz inne złożone zadania, umożliwiając programistom wykonanie ich za pomocą zaledwie kilku wierszy kodu.
Wnioski
Wszyscy klienci Iron Software mają możliwość zakupu całej Suite za pomocą zaledwie dwóch kliknięć. Obecnie można nabyć wszystkie pięć bibliotek z pakietu Iron Software Suite wraz z bieżącym wsparciem technicznym dla każdej z nich za cenę zaledwie dwóch bibliotek z pakietu.
Często Zadawane Pytania
Jak mogę przekonwertować HTML na PDF za pomocą biblioteki Java?
Możesz użyć metody renderHtmlAsPdf biblioteki IronPDF do konwersji ciągów HTML na dokumenty PDF. Możesz również konwertować pliki HTML na PDF za pomocą metody renderHtmlFileAsPdf.
Jakie są kroki instalacji biblioteki Java PDF?
Aby zainstalować IronPDF for Java, należy zadeklarować go jako zależność w pliku pom.xml lub ręcznie pobrać plik .jar z repozytorium IronPDF Maven i dołączyć go do ścieżki klas projektu.
Czym różni się IronPDF for Java od iTextPDF?
IronPDF koncentruje się na upraszczaniu zadań przy użyciu mniejszej liczby linii kodu, wykorzystując silnik Chrome do konwersji HTML na PDF. iTextPDF oferuje bardziej szczegółową kontrolę poprzez programowe API, ale wymaga więcej kodu do manipulacji.
Czy mogę dodawać obrazy do pliku PDF za pomocą biblioteki Java PDF?
Tak, w IronPDF można użyć metody PdfDocument.fromImage do renderowania obrazów do pojedynczego pliku PDF, podając listę ścieżek do plików obrazów.
Jakie opcje licencyjne oferuje biblioteka Java PDF?
IronPDF oferuje elastyczne opcje licencyjne, w tym licencje na pojedynczy projekt, dla indywidualnych programistów, agencji i korporacji, a także opcje dystrybucji SaaS i OEM. Wszystkie licencje obejmują 30-dniową gwarancję zwrotu pieniędzy oraz roczną pomoc techniczną.
Czy można edytować pliki PDF za pomocą IronPDF for Java?
Tak, IronPDF umożliwia edycję, scalanie i modyfikowanie dokumentów PDF. Oferuje narzędzia do dodawania nagłówków, stopek oraz obsługi wielu formatów internetowych, takich jak HTML, ASPX i MVC.
Czy są dostępne darmowe opcje bibliotek Java do obsługi plików PDF?
iTextPDF jest oprogramowaniem typu open source na licencji AGPL, która pozwala na bezpłatne użytkowanie, ale wymaga udostępnienia kodu źródłowego aplikacji, która z niego korzysta. IronPDF jest bezpłatny do celów programistycznych, ale wymaga licencji do wdrożenia komercyjnego.
Jaki jest najlepszy sposób konwersji plików HTML do formatu PDF w Javie?
Metoda renderHtmlFileAsPdf biblioteki IronPDF umożliwia konwersję plików HTML z lokalnej lub sieciowej ścieżki plików do formatu PDF, oferując programistom usprawniony proces.
Jakie funkcje oferuje IronPDF do generowania plików PDF?
IronPDF obsługuje tworzenie, odczytywanie i edycję plików PDF z funkcjami takimi jak HTML5, JavaScript, CSS i konwersja obrazów do formatu PDF, dodawanie nagłówków/stopek i wiele innych. Koncentruje się na wydajności programistów i łatwości użytkowania.
Co jest potrzebne do zintegrowania iTextPDF z projektem Java?
Aby włączyć iTextPDF do projektu Java, należy dodać szczegóły repozytorium Maven do pliku pom.xml oraz pobrać pliki .jar niezbędne do integracji.











