Acest articol vă va arăta cum să generați PDF-uri din HTML utilizând Java. Puteți manipula și reda cu ușurință documente HTML, inclusiv stiluri CSS.
Aspose.HTML for Java
permite aplicațiilor dumneavoastră să efectueze o gamă largă de sarcini de manipulare HTML și suportă HTML5, CSS3, SVG și funcționalități HTML Canvas. Cu API‑ul nostru puteți încărca pagini web, analiza, edita conținutul și salva și converti paginile.
Formate populare pe care le puteți manipula: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP și altele.
PDF din HTML în Java
Set complet de funcționalități
Aspose.HTML for Java vă oferă numeroase funcții în diverse domenii:
• Modelul de obiecte al documentului – permite editarea, crearea și eliminarea nodurilor și este construit conform documentației oficiale HTML.
• Conversii cu performanță înaltă. Pentru mai multe informații despre formatele de fișiere suportate vizitați Lista de funcționalități
sau articolele Conversie
.
• Procesarea CSS, JavaScript și a altor formate încorporate.
Generați PDF din HTML cu o singură linie de cod Java
Puteți genera cu ușurință PDF din HTML în aplicația dumneavoastră Java printr-o singură linie de cod, utilizând metodele statice ale clasei 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"
);
Generați PDF din HTML linie cu linie utilizând Java
Mai jos sunt pașii pentru a genera PDF din HTML linie cu linie:
- Folosind clasa HtmlDocument
încărcați mai întâi fișierul HTML.
- Apoi creați o instanță a clasei PdfSaveOptions
.
- Cu metoda ConvertHTML()
a clasei Converter
salvați HTML‑ul ca fișier PDF. Trebuie să transmiteți HTMLDocument
, PdfSaveOptions
și calea fișierului de ieșire metodei ConvertHTML() pentru a genera PDF din 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();
}
}
Personalizați procesul de redare cu opțiunea Save
Puteți personaliza procesul de redare cu PdfSaveOptions
și să specificați dimensiunea paginii
, permisiunile fișierului
, marginile
, tipul media CSS
și multe altele. În exemplul de mai jos puteți vedea cum se utilizează PdfSaveOptions pentru a crea un fișier PDF cu dimensiune de pagină personalizată și culoare de fundal:
// 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"
);
În articolul Fine‑Tuning Converters
găsiți informații suplimentare despre PdfSaveOptions
.
Furnizor de flux de ieșire
Puteți implementa interfața MemoryStreamProvider
dacă doriți să salvați fișiere în stocare la distanță, cum ar fi în cloud sau în bază de date.
Interfața MemoryStreamProvider este concepută ca un obiect de callback pentru a crea un flux și a elibera fluxul creat anterior după redarea paginii sau a documentului.
Vă vom arăta un exemplu de utilizare a MemoryStreamProvider:
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 oferă suport tehnic pentru toate produsele sale, de la articole din baza de cunoștințe
, documentație
, blog
, exemple de cod
, și demo‑uri
, până la Suport gratuit
și Suport plătit
.
Dacă aveți nevoie de experți care să colaboreze cu dumneavoastră și să vă ajute să implementați Aspose.HTML for Java conform cerințelor, cea mai bună soluție este Consultanța plătită
.