HTML do PDF w Java
IronPDF for Java przekształca treści HTML w dokładne dokumenty PDF używając tego samego silnika renderującego, który znajduje się w nowoczesnych przeglądarkach. Aplikacje Java mogą generować PDF-y z ciągów HTML, lokalnych plików HTML lub stron internetowych na żywo, bez potrzeby dodatkowego oprogramowania renderującego lub środowiska GUI.
Ten samouczek obejmuje wszystkie trzy metody konwersji HTML na PDF dostępne w IronPDF for Java, plus opcje instalacji, licencjonowania i konfiguracji. Programiści już używający IronPDF for .NET znajdą interfejs API Java znajomy; ekwiwalentny samouczek .NET jest dostępny pod Samouczek HTML to PDF dla .NET.
Szybki start: Generuj PDF z HTML
Poniższy przykład tworzy jednostronicowy PDF z ciągu HTML i zapisuje go na dysku. Po zainstalowaniu biblioteki przez Maven (Krok 1), to wszystko, co jest wymagane w kodzie:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/quickstart-html-string.java
import com.ironsoftware.ironpdf.*;
// Apply your license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
// Render an HTML string to a PDF file
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Java.</p>");
pdf.saveAs("output.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/quickstart-html-string.java
import com.ironsoftware.ironpdf.*;
// Apply your license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
// Render an HTML string to a PDF file
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Java.</p>");
pdf.saveAs("output.pdf");
Rozpocznij używanie IronPDF w swoim projekcie już dziś dzięki darmowej wersji próbnej.
Spis treści
- Jak zainstalować IronPDF w projekcie Java?
- Jak przekonwertować ciąg HTML na PDF w Java?
- Jak załadować lokalne zasoby w ciągu HTML?
- Jak przekonwertować URL na PDF w Java?
- Jak przekonwertować plik HTML na PDF w Java?
- Jak dostosować ustawienia wyjściowe PDF?
- Jak dodać nagłówki i stopki do PDF?
- Jak ustawić niestandardowe marginesy i rozmiar strony?
- Jak dodać znak wodny do PDF?
- Jak wyciągnąć tekst z PDF w Java?
- Jak wyciągnąć obrazy z PDF w Java?
- Jak skompresować plik PDF?
- Jak programowo drukować PDF?
- Kolejne kroki
Jak zainstalować IronPDF w projekcie Java?
IronPDF for Java jest dostępny w repozytorium Maven Central. Rekomendowaną metodą instalacji jest Maven, chociaż ręczna instalacja JAR jest również wspierana dla projektów, które nie używają systemu budowania.
Zainstaluj jako zależność Maven
Dodaj następujące artefakty do sekcji dependencies w pliku pom.xml swojego projektu:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/maven-dependency.xml
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2024.9.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.5</version>
</dependency>
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/maven-dependency.xml
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2024.9.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.5</version>
</dependency>
Pierwszy artefakt ściąga IronPDF. The second is an SLF4J logging implementation. IronPDF używa SLF4J do emitowania diagnostycznych wiadomości podczas renderowania; you can substitute it with Logback or Log4j 2, or omit logging entirely.
Uruchom mvn install w katalogu głównym projektu, aby pobrać zależności. Sprawdź najnowszą wersję IronPDF przed przypięciem numeru wersji, ponieważ changelog zawiera wszystkie aktualne i przeszłe wydania.
Zainstaluj JAR ręcznie
Deweloperzy nie używający Maven mogą pobrać grubego JAR IronPDF bezpośrednio z Maven Central i dodać go do ścieżki klas projektu. Gruby JAR pakuje wszystkie przechodnie zależności.
Zaimportuj pakiet IronPDF
Wszystkie klasy do renderowania i manipulacji plikami PDF znajdują się w pakiecie com.ironsoftware.ironpdf. Dodaj to stwierdzenie importu do dowolnego pliku źródłowego Java, który używa IronPDF:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/import-package.java
import com.ironsoftware.ironpdf.*;
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/import-package.java
import com.ironsoftware.ironpdf.*;
Ustaw klucz licencyjny
Bez klucza licencji, IronPDF renderuje PDF-y z znakami wodnymi rozmieszczonymi w kafelkowy sposób na każdej stronie. Aby usunąć znak wodny, przed wywołaniem dowolnej metody renderowania należy przekazać prawidłowy klucz licencyjny do License.setLicenseKey:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-license-key.java
import com.ironsoftware.ironpdf.*;
// Set the license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-license-key.java
import com.ironsoftware.ironpdf.*;
// Set the license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
Umieść to wywołanie podczas uruchomienia aplikacji, przed uruchomieniem jakiejkolwiek logiki generowania PDF. Rozpocznij darmowy okres próbny aby uzyskać klucz próbny lub zobacz opcje licencjonowania do użycia produkcyjnego.
Skonfiguruj ścieżkę pliku dziennika
IronPDF zapisuje diagnostykę renderowania w pliku dziennika o nazwie IronPdfEngine.log w katalogu roboczym aplikacji. Zadzwoń pod numer Settings.setLogPath, aby zmienić nazwę lub lokalizację pliku:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-log-path.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Configure logging before calling any rendering methods
Settings.setLogPath(Paths.get("logs/ironpdf.log"));
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-log-path.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Configure logging before calling any rendering methods
Settings.setLogPath(Paths.get("logs/ironpdf.log"));
Settings.setLogPath. Wywołania dokonywane po rozpoczęciu renderowania nie będą miały efektu.Jak przekonwertować ciąg HTML na PDF w Java?
PdfDocument.renderHtmlAsPdf konwertuje ciąg HTML na obiekt PdfDocument, który następnie można zapisać na dysku lub przekazać do innych metod przetwarzania. Ta metoda akceptuje dowolny kod HTML zgodny ze standardem W3C, w tym pełne znaczniki stron z elementami <head> i <body>.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a simple HTML string to PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save the resulting PDF to a file
pdf.saveAs("htmlstring_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a simple HTML string to PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save the resulting PDF to a file
pdf.saveAs("htmlstring_to_pdf.pdf");
Metoda zwraca instancję PdfDocument. Wywołaj saveAs, aby zapisać plik PDF na dysku, lub użyj getBinaryData, aby pobrać surowe bajty pliku PDF do strumieniowania lub przechowywania.
renderHtmlAsPdf przetwarza całą zawartość HTML, CSS i JavaScript w taki sam sposób, jak robi to przeglądarka zgodna ze standardami. Powstały PDF odzwierciedla dokładnie, jak wyglądałaby strona podczas przeglądania w Chrome.
Dla więcej szczegółów na temat tej metody, zobacz przykład kodu HTML string to PDF na stronie z przykładami Java IronPDF.
Jak załadować lokalne zasoby w ciągu HTML?
HTML często referuje zasoby zewnętrzne (arkusze stylów, obrazy, skrypty) przez ścieżkę względną. renderHtmlAsPdf akceptuje opcjonalny drugi argument, który ustawia ścieżkę bazową do rozpoznawania tych odwołań. Ścieżka podstawowa może wskazywać na lokalny katalog lub na URL.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-local-assets.java
import com.ironsoftware.ironpdf.*;
// HTML with references to local stylesheets and images
String html = "<html>"
+ "<head>"
+ "<title>Invoice</title>"
+ "<link rel='stylesheet' type='text/css' href='style.css'>"
+ "</head>"
+ "<body>"
+ "<div class='content'>"
+ "<h1>Invoice #1001</h1>"
+ "<img src='logo.png' alt='Company Logo'/>"
+ "</div>"
+ "</body>"
+ "</html>";
// The second argument resolves relative asset paths
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/invoices/");
pdf.saveAs("invoice.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-local-assets.java
import com.ironsoftware.ironpdf.*;
// HTML with references to local stylesheets and images
String html = "<html>"
+ "<head>"
+ "<title>Invoice</title>"
+ "<link rel='stylesheet' type='text/css' href='style.css'>"
+ "</head>"
+ "<body>"
+ "<div class='content'>"
+ "<h1>Invoice #1001</h1>"
+ "<img src='logo.png' alt='Company Logo'/>"
+ "</div>"
+ "</body>"
+ "</html>";
// The second argument resolves relative asset paths
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/invoices/");
pdf.saveAs("invoice.pdf");
Argument ścieżki podstawowej działa z zarówno absolutnymi ścieżkami systemu plików, jak i ciągami URL. Dzięki temu renderHtmlAsPdf nadaje się do generowania plików PDF z szablonów przechowywanych na dysku lub udostępnianych z serwera internetowego.
C:\invoices\) powinny zostać zamienione na ukośniki lub należy użyć Paths.get() w celu zapewnienia kompatybilności między platformami.Jak przekonwertować URL na PDF w Java?
PdfDocument.renderUrlAsPdf pobiera aktualną stronę internetową pod podanym adresem URL i renderuje ją jako plik PDF. Metoda ładuje całą stronę, w tym wszystkie zewnętrzne CSS, JavaScript i obrazy, przed renderowaniem.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/url-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Render a live web page as a PDF document
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("url_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/url-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Render a live web page as a PDF document
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("url_to_pdf.pdf");
renderUrlAsPdf czeka na zakończenie wykonywania kodu JavaScript przed przechwyceniem wyrenderowanej strony, co oznacza, że dynamicznie generowana zawartość (taka jak wykresy lub dane ładowane za pomocą AJAX) pojawi się w wyjściowym pliku PDF.
Dla ekwiwalentnej implementacji .NET lub dodatkowych opcji URL na PDF, zobacz przykład konwersji URL na PDF.
Jak przekonwertować plik HTML na PDF w Java?
PdfDocument.renderHtmlFileAsPdf odczytuje lokalny plik HTML i renderuje go jako plik PDF. Wszystkie ścieżki względne odwołujące się w pliku HTML (arkusze stylów, obrazy, skrypty) są rozwiązywane względnie do katalogu pliku HTML.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-file-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a local HTML file to PDF
// IronPDF resolves relative asset paths from the HTML file's directory
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-file-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a local HTML file to PDF
// IronPDF resolves relative asset paths from the HTML file's directory
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
To podejście działa dobrze dla generacji dokumentów na podstawie szablonów: szablony faktur, raportów lub certyfikatów przechowywane jako pliki HTML wraz z powiązanymi zasobami CSS i obrazami. IronPDF renderuje plik z taką samą dokładnością jak przeglądarka, zachowując wszystkie reguły układu CSS.
renderHtmlFileAsPdf są rozpoznawane z katalogu roboczego JVM, co może powodować nieoczekiwane wyniki w środowiskach serwerowych.Jak dostosować ustawienia wyjściowe PDF?
Klasa PdfRenderOptions kontroluje układ strony i sposób renderowania. Utwórz instancję PdfRenderOptions, skonfiguruj wymagane właściwości i przekaż ją do dowolnej metody renderowania.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/render-options.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
// Configure rendering options before generating the PDF
PdfRenderOptions options = new PdfRenderOptions();
// Set the zoom level (100 = normal size)
options.setZoom(100);
// Wait for JavaScript to finish before rendering
options.setJavaScriptTimeout(5000);
// Enable printing of background colors and images
options.setPrintBackground(true);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
"<h1>Customized PDF</h1>",
options
);
pdf.saveAs("customized.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/render-options.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
// Configure rendering options before generating the PDF
PdfRenderOptions options = new PdfRenderOptions();
// Set the zoom level (100 = normal size)
options.setZoom(100);
// Wait for JavaScript to finish before rendering
options.setJavaScriptTimeout(5000);
// Enable printing of background colors and images
options.setPrintBackground(true);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
"<h1>Customized PDF</h1>",
options
);
pdf.saveAs("customized.pdf");
Klasa PdfRenderOptions udostępnia dodatkowe właściwości do sterowania DPI, szerokością okna wyświetlania, orientacją papieru oraz wartościami limitu czasu. Zobacz przykład kodu ustawień generowania PDF dla pełnej listy dostępnych opcji.
Jak dodać nagłówki i stopki do PDF?
IronPDF obsługuje zarówno oparte na tekście, jak i oparte na HTML nagłówki i stopki. Nagłówki tekstowe używają zdefiniowanych wcześniej pól scalania dla powszechnych wartości, takich jak numery stron i tytuły dokumentów; Nagłówki HTML akceptują dowolne oznaczenia HTML dla w pełni dostosowanych układów.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/headers-footers.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Annual Report</h1><p>Content goes here.</p>");
// Create a text-based header using merge fields
TextHeaderFooter header = new TextHeaderFooter();
header.setCenterText("Annual Report");
header.setRightText("{page} of {total-pages}");
header.setFont(com.ironsoftware.ironpdf.font.FontTypes.Helvetica);
header.setFontSize(10.0);
// Create a text-based footer
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("Confidential");
footer.setRightText("Generated by IronPDF");
pdf.addTextHeaders(header);
pdf.addTextFooters(footer);
pdf.saveAs("report_with_headers.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/headers-footers.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Annual Report</h1><p>Content goes here.</p>");
// Create a text-based header using merge fields
TextHeaderFooter header = new TextHeaderFooter();
header.setCenterText("Annual Report");
header.setRightText("{page} of {total-pages}");
header.setFont(com.ironsoftware.ironpdf.font.FontTypes.Helvetica);
header.setFontSize(10.0);
// Create a text-based footer
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("Confidential");
footer.setRightText("Generated by IronPDF");
pdf.addTextHeaders(header);
pdf.addTextFooters(footer);
pdf.saveAs("report_with_headers.pdf");
Pola scalania {page} i {total-pages} są zastępowane w momencie renderowania bieżącym numerem strony i całkowitą liczbą stron. W przypadku bardziej zaawansowanych układów, takich jak stopka z logo firmy, należy użyć HtmlHeaderFooter zamiast TextHeaderFooter.
Dla pełnych szczegółów na temat opartych na HTML nagłówków i stopek, zobacz przykład kodu dodawania nagłówków i stopek.
Jak ustawić niestandardowe marginesy i rozmiar strony?
Rozmiar strony i marginesy są konfigurowane w obiekcie PdfRenderOptions przed renderowaniem pliku PDF. IronPDF obsługuje standardowe rozmiary papieru (A4, Letter, Legal) i w pełni niestandardowe wymiary.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/margins-page-size.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
import com.ironsoftware.ironpdf.page.*;
PdfRenderOptions options = new PdfRenderOptions();
// Set margins in millimeters: top, right, bottom, left
options.setMarginTop(25);
options.setMarginRight(20);
options.setMarginBottom(25);
options.setMarginLeft(20);
// Use A4 paper size
options.setPaperSize(PaperSize.A4);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Formatted Document</h1>", options);
pdf.saveAs("formatted_document.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/margins-page-size.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
import com.ironsoftware.ironpdf.page.*;
PdfRenderOptions options = new PdfRenderOptions();
// Set margins in millimeters: top, right, bottom, left
options.setMarginTop(25);
options.setMarginRight(20);
options.setMarginBottom(25);
options.setMarginLeft(20);
// Use A4 paper size
options.setPaperSize(PaperSize.A4);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Formatted Document</h1>", options);
pdf.saveAs("formatted_document.pdf");
Dla pełnej listy obsługiwanych rozmiarów papieru i jednostek, zobacz przykład kodu niestandardowego rozmiaru papieru oraz przykład kodu niestandardowych marginesów.
Jak dodać znak wodny do PDF?
PdfDocument.applyWatermark nakłada tekstowy lub graficzny znak wodny na każdą stronę dokumentu. Znacznik wodny jest domyślnie wyświetlany na osobnej warstwie poniżej treści strony lub powyżej niej, gdy flaga isStampBehind jest ustawiona na false.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/add-watermark.java
import com.ironsoftware.ironpdf.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Document</h1>");
// Apply an HTML watermark; supports full CSS styling
String watermarkHtml = "<h1 style='color: rgba(200, 0, 0, 0.2); transform: rotate(-45deg); font-size: 60px;'>DRAFT</h1>";
// Second argument: opacity (0-100), third: rotation (degrees), fourth: stamp behind content
pdf.applyWatermark(watermarkHtml, 50, 45, true);
pdf.saveAs("draft_watermarked.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/add-watermark.java
import com.ironsoftware.ironpdf.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Document</h1>");
// Apply an HTML watermark; supports full CSS styling
String watermarkHtml = "<h1 style='color: rgba(200, 0, 0, 0.2); transform: rotate(-45deg); font-size: 60px;'>DRAFT</h1>";
// Second argument: opacity (0-100), third: rotation (degrees), fourth: stamp behind content
pdf.applyWatermark(watermarkHtml, 50, 45, true);
pdf.saveAs("draft_watermarked.pdf");
Podejście HTML daje precyzyjną kontrolę nad stylem znaku wodnego, w tym czcionką, rozmiarem, kolorem i przezroczystością. Dla zaawansowanych konfiguracji znaku wodnego, takich jak powtarzające się wzory kafelkowe lub oparte na obrazach pieczęci, zobacz poradnik dotyczący znaku wodnego.
Jak wyodrębnić tekst z PDF w Javie?
PdfDocument.extractAllText odczytuje treść tekstową osadzoną w pliku PDF i zwraca ją jako pojedynczy String. Ta metoda wyodrębnia wybieralny tekst ze wszystkich stron w dokumencie.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-text.java
import com.ironsoftware.ironpdf.*;
// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("report.pdf"));
// Extract all embedded text from the document
String text = pdf.extractAllText();
System.out.println(text);
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-text.java
import com.ironsoftware.ironpdf.*;
// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("report.pdf"));
// Extract all embedded text from the document
String text = pdf.extractAllText();
System.out.println(text);
Wyodrębnianie tekstu działa w plikach PDF, gdzie tekst jest przechowywany jako wybieralne glify. Dla plików PDF będących skanami obrazów, rozważ sparowanie IronPDF z biblioteką OCR, aby wyodrębnić tekst z renderowanych obrazów stron.
Zobacz przykład kodu wyodrębniania tekstu z PDF dla dodatkowych opcji, w tym wyodrębniania tekstu na stronę.
Jak wyodrębnić obrazy z PDF w Javie?
PdfDocument.extractAllImages zwraca listę obiektów BufferedImage, po jednym dla każdego obrazu osadzonego w pliku PDF. Zwrócone obrazy mogą być zapisane bezpośrednio na dysk lub przekazane do dalszego przetwarzania obrazów.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-images.java
import com.ironsoftware.ironpdf.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;
import javax.imageio.ImageIO;
// Load an existing PDF
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));
// Extract all embedded images
List<BufferedImage> images = pdf.extractAllImages();
for (int i = 0; i < images.size(); i++) {
ImageIO.write(images.get(i), "PNG", new File("extracted_image_" + i + ".png"));
}
System.out.println("Extracted " + images.size() + " image(s).");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-images.java
import com.ironsoftware.ironpdf.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;
import javax.imageio.ImageIO;
// Load an existing PDF
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));
// Extract all embedded images
List<BufferedImage> images = pdf.extractAllImages();
for (int i = 0; i < images.size(); i++) {
ImageIO.write(images.get(i), "PNG", new File("extracted_image_" + i + ".png"));
}
System.out.println("Extracted " + images.size() + " image(s).");
Dla więcej opcji wyodrębniania, w tym wyodrębniania obrazów z określonych stron, zobacz przykład kodu wyodrębniania obrazu z PDF.
Jak skompresować plik PDF?
PdfDocument.compressImages zmniejsza rozmiar pliku PDF poprzez ponowne kodowanie osadzonych obrazów w niższej jakości. Metoda akceptuje wartość jakości od 1 (minimalna jakość, najmniejszy plik) do 100 (maksymalna jakość).
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/compress-pdf.java
import com.ironsoftware.ironpdf.*;
// Load a large PDF with embedded images
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("large_report.pdf"));
// Compress images to 60% quality to reduce file size
pdf.compressImages(60);
pdf.saveAs("large_report_compressed.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/compress-pdf.java
import com.ironsoftware.ironpdf.*;
// Load a large PDF with embedded images
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("large_report.pdf"));
// Compress images to 60% quality to reduce file size
pdf.compressImages(60);
pdf.saveAs("large_report_compressed.pdf");
Kompresja obrazów jest najskuteczniejszym sposobem na zmniejszenie rozmiaru plików PDF zawierających fotografie lub grafiki o wysokiej rozdzielczości. Dla dodatkowych strategii redukcji rozmiaru plików, takich jak usuwanie osadzonych czcionek, zobacz przykład kodu kompresji PDF.
Jak programowo wydrukować PDF?
PdfDocument.print wysyła plik PDF do domyślnej drukarki systemu przy użyciu standardowego interfejsu API drukowania Java. Metoda akceptuje wartość logiczną, która kontroluje, czy pokazać okno dialogowe drukowania.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/print-pdf.java
import com.ironsoftware.ironpdf.*;
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));
// Print silently to the default printer (no dialog shown)
pdf.print(false);
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/print-pdf.java
import com.ironsoftware.ironpdf.*;
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));
// Print silently to the default printer (no dialog shown)
pdf.print(false);
Przekaż true do metody print, aby wyświetlić systemowe okno dialogowe drukowania, umożliwiające użytkownikom wybór drukarki i skonfigurowanie ustawień drukowania przed wysłaniem zadania.
Kolejne kroki
Ten samouczek obejmował główne metody konwersji HTML na PDF w IronPDF for Java, wraz z instalacją, konfiguracją i powszechnymi operacjami przetwarzania dokumentów.
Więcej informacji:
- Przeglądaj pełny zestaw przykładów kodu HTML na PDF w Javie dla dodatkowych scenariuszy renderowania, które nie zostały tu omówione.
- Przeczytaj dokumentację IronPDF for Java, aby zrozumieć wdrażanie, bezpieczeństwo wątków i konfigurację serwera.
- Zbadaj kompletne IronPDF Java API reference dla szczegółowych sygnatur metod i opisów parametrów.
Rozpocznij bezpłatny okres próbny, aby generować PDF bez znaków wodnych, lub zobacz opcje licencyjne, aby znaleźć odpowiedni plan dla twojego projektu.
Szybki dostęp do samouczka
Pobierz ten samouczek jako kod źródłowy Java
Pełny kod źródłowy HTML do PDF dla tego samouczka jest dostępny do pobrania jako skompresowany projekt IntelliJ.
PobierzZapoznaj się z tym samouczkiem na GitHubie
Kod źródłowy tego projektu jest dostępny na GitHub jako projekt IntelliJ IDEA. Może być zaimportowany do innych popularnych IDE Java, w tym Eclipse i NetBeans.
Java HTML do PDF na GitHubZobacz Dokumentację API
Zbadaj referencje API Java IronPDF, obejmujące wszystkie przestrzenie nazw, klasy, metody i wyliczenia dostępne w bibliotece.
Zobacz Dokumentację APICzęsto Zadawane Pytania
Do czego służy IronPDF for Java?
IronPDF dla Java konwertuje zawartość HTML do dokumentów PDF w aplikacjach Java. Obsługuje konwersję ciągów HTML, lokalnych plików HTML i adresów URL stron internetowych na żywo oraz oferuje narzędzia do dodawania nagłówków i stopek, znaków wodnych, ekstrakcji tekstu, ekstrakcji obrazów i kompresji plików.
Jak zainstalować IronPDF w projekcie Java?
Dodaj dwie zależności Maven do pom.xml: com.ironsoftware:ironpdf i org.slf4j:slf4j-simple, a następnie uruchom mvn install. Alternatywnie pobierz gruby JAR z Maven Central i dodaj go do ścieżki klasy projektu.
Jak przekonwertować ciąg HTML na PDF w Java?
Wywołaj PdfDocument.renderHtmlAsPdf(htmlString) z twoimi znakami HTML. Metoda zwraca obiekt PdfDocument. Wywołaj pdf.saveAs("output.pdf") aby zapisać go na dysku.
Jak przekonwertować URL na PDF w Java?
Wywołaj PdfDocument.renderUrlAsPdf("https://example.com"). IronPDF pobiera stronę, czeka na wykonanie JavaScript, następnie renderuje w pełni załadowaną stronę jako PDF.
Jak przekonwertować lokalny plik HTML na PDF w Java?
Wywołaj PdfDocument.renderHtmlFileAsPdf("C:/path/to/file.html"). Użyj pełnej ścieżki pliku. IronPDF automatycznie rozwiązuje względne odwołania CSS i obrazów z katalogu pliku HTML.
Czy IronPDF dla Java dodaje znak wodny do generowanych PDF?
Bez klucza licencyjnego, IronPDF dodaje kafelkowy znak wodny do wszystkich generowanych PDF. Ustaw ważny klucz licencyjny za pomocą License.setLicenseKey("YOUR-KEY") przed jakimkolwiek wywołaniem renderowania, aby usunąć znak wodny.
Jaką wersję Java wymaga IronPDF?
IronPDF dla Java wymaga Java 8 lub nowszej. Jest kompatybilna z Spring Boot, Java EE, Micronaut i innymi oparciami na JVM.
Jak dodać numery stron do PDF w Java przy użyciu IronPDF?
Utwórz instancję TextHeaderFooter i wywołaj setRightText("{page} of {total-pages}"). Przekaż obiekt do pdf.addTextFooters(footer). Pola scalania są zamieniane przy renderowaniu na rzeczywiste numery stron.
Czy IronPDF dla Java może wyodrębnić tekst z PDF?
Tak. Załaduj plik PDF za pomocą PdfDocument.fromFile(Paths.get("file.pdf")), następnie wywołaj pdf.extractAllText() aby pozyskać cały wybieralny tekst jako ciąg znaków.
Jak mogę zmniejszyć rozmiar pliku PDF w Java?
Wywołaj pdf.compressImages(quality), gdzie jakość to liczba całkowita od 1 do 100. Wartość 60 zapewnia dobrą równowagę między rozmiarem pliku a wiernością obrazu dla większości PDF.





