Generowanie PDF z HTML przy użyciu Javy [Krok po kroku]
Ten artykuł pokaże, jak generować pliki PDF z HTML przy użyciu Javy. Łatwo manipuluj i renderuj dokumenty HTML, w tym style CSS.
Aspose.HTML for Java
umożliwia aplikacjom wykonywanie szerokiego zakresu zadań manipulacji HTML oraz obsługuje HTML5, CSS3, SVG i funkcje HTML Canvas. Dzięki naszemu API możesz ładować strony internetowe, analizować, edytować ich zawartość oraz zapisywać i konwertować strony.
Popularne formaty, które możesz manipulować: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP i inne.
Bogaty zestaw funkcji
Aspose.HTML for Java oferuje wiele funkcji w różnych obszarach:
• Model obiektowy dokumentu – pozwala edytować, tworzyć i usuwać węzły, a jest zbudowany zgodnie z oficjalną dokumentacją HTML.
• Wysokowydajne konwertery. Więcej informacji o obsługiwanych formatach plików znajdziesz w Lista funkcji
lub w artykułach Konwertowanie
.
• Przetwarzanie CSS, JavaScript i innych wbudowanych formatów.
Generowanie PDF z HTML jedną linią kodu Java
Możesz łatwo wygenerować PDF z HTML w swojej aplikacji Java dosłownie jedną linią kodu, korzystając ze statycznych metod klasy Converter .
// Invoke the ConvertHTML method to convert the HTML to PDF.
com.aspose.html.converters.Converter.convertHTML(
"<span>Hello World!!</span>",
".",
new com.aspose.html.saving.PdfSaveOptions(),
"output.pdf"
);
Generowanie PDF z HTML linia po linii przy użyciu Javy
Poniżej znajdują się kroki, aby generować PDF z HTML linia po linii:
- Używając klasy HtmlDocument najpierw załaduj plik HTML.
- Następnie utwórz instancję PdfSaveOptions .
- Za pomocą metody ConvertHTML() klasy Converter zapisz HTML jako plik PDF. Musisz przekazać HTMLDocument , PdfSaveOptions oraz ścieżkę wyjściowego pliku do metody ConvertHTML(), aby wygenerować PDF z HTML.
// Prepare an HTML code and save it to the file.
String code = "<span>Hello World!!</span>";
try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
fileWriter.write(code);
}
// Initialize an HTML document from the file
com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument("document.html");
try {
// Initialize PdfSaveOptions
com.aspose.html.saving.PdfSaveOptions options = new com.aspose.html.saving.PdfSaveOptions();
// Convert HTML to PDF
com.aspose.html.converters.Converter.convertHTML(
document,
options,
"output.pdf"
);
} finally {
if (document != null) {
document.dispose();
}
}
Dostosowanie procesu renderowania przy użyciu opcji zapisu
Możesz dostosować proces renderowania przy użyciu PdfSaveOptions , określając rozmiar strony, uprawnienia pliku, marginesy, typ mediów CSS i wiele innych. W poniższym przykładzie widać, jak używać PdfSaveOptions i utworzyć plik PDF z niestandardowym rozmiarem strony oraz kolorem tła:
// Prepare an HTML code and save it to the file
String code = "<span>Hello</span> <span>World!!</span>";
try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
fileWriter.write(code);
}
// Set A5 as a page-size and change the background color to green
com.aspose.html.saving.PdfSaveOptions options = new com.aspose.html.saving.PdfSaveOptions();
com.aspose.html.rendering.PageSetup pageSetup = new com.aspose.html.rendering.PageSetup();
com.aspose.html.drawing.Page anyPage = new com.aspose.html.drawing.Page();
anyPage.setSize(
new com.aspose.html.drawing.Size(
com.aspose.html.drawing.Length.fromInches(8.3f),
com.aspose.html.drawing.Length.fromInches(5.8f)
)
);
pageSetup.setAnyPage(anyPage);
options.setPageSetup(pageSetup);
options.setBackgroundColor(com.aspose.html.drawing.Color.getGreen());
// Convert HTML document to PDF
com.aspose.html.converters.Converter.convertHTML(
"document.html",
options,
"output.pdf"
);
W artykule Dostosowywanie konwerterów znajdziesz więcej informacji o PdfSaveOptions .
Dostawca strumienia wyjściowego
Możesz zaimplementować interfejs MemoryStreamProvider
, jeśli chcesz zapisywać pliki w zdalnym magazynie, takim jak chmura lub baza danych.
Interfejs MemoryStreamProvider jest zaprojektowany jako obiekt zwrotny służący do tworzenia strumienia i zwalniania wcześniej utworzonego strumienia po renderowaniu strony lub dokumentu.
Pokażemy Ci przykład użycia MemoryStreamProvider poniżej:
package com.aspose.html.examples.java;
// For complete examples and data files, please go to https://github.com/aspose-html/Aspose.HTML-for-Java
public class MemoryStreamProvider implements java.io.Closeable {
// List of InputStream objects created during the document rendering
public java.util.List<java.io.InputStream> lStream = new java.util.ArrayList<>();
@Override
public void close() throws java.io.IOException {
for (java.io.InputStream stream : lStream) {
stream.close();
}
}
}
// Create an instance of MemoryStreamProvider
try (MemoryStreamProvider streamProvider = new MemoryStreamProvider()) {
// Initialize an HTML document
com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument("<span>Hello World!!</span>", ".");
try {
// Convert HTML to PDF by using the MemoryStreamProvider
com.aspose.html.converters.Converter.convertHTML(
document,
new com.aspose.html.saving.PdfSaveOptions(),
streamProvider.lStream
);
// Get access to the memory stream that contains the result data
java.io.InputStream inputStream = streamProvider.lStream.stream().findFirst().get();
// Flush the result data to the output file
try (java.io.FileOutputStream fileOutputStream = new java.io.FileOutputStream("output.pdf")) {
byte[] buffer = new byte[inputStream.available()];
inputStream.read(buffer);
fileOutputStream.write(buffer);
}
} finally {
if (document != null) {
document.dispose();
}
}
}
Aspose zapewnia wsparcie techniczne dla wszystkich swoich produktów, w tym artykuły bazy wiedzy
, dokumentację
, blog
, przykłady kodu
, oraz demo
, a także Bezpłatne wsparcie
oraz wysoko dostępne Płatne wsparcie
.
Jeśli potrzebujesz ekspertów, którzy będą współpracować z Tobą i pomogą wdrożyć Aspose.HTML for Java zgodnie z Twoimi potrzebami, najlepszym rozwiązaniem jest nasza Płatna konsultacja
.