PDF genereren vanuit HTML met Java [Stap‑voor‑stap]
Dit artikel laat zien hoe je PDF‑bestanden genereert vanuit HTML met Java. Je kunt HTML‑documenten inclusief CSS‑stijlen eenvoudig manipuleren en renderen.
Aspose.HTML for Java
maakt het mogelijk om een breed scala aan HTML‑manipulatietaken uit te voeren en ondersteunt HTML5, CSS3, SVG en HTML‑Canvas‑functies. Met onze API kun je webpagina’s laden, de inhoud analyseren, bewerken en pagina’s opslaan en converteren.
Populaire formaten die je kunt manipuleren: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP en andere.
Uitgebreide functionaliteit
Aspose.HTML for Java biedt tal van functies op verschillende gebieden:
• Document‑objectmodel – stelt je in staat knooppunten te bewerken, te maken en te verwijderen en is gebouwd volgens de officiële HTML‑documentatie.
• Hoog‑presterende converters. Voor meer informatie over ondersteunde bestandsformaten, bezoek de Functielijst
of de artikelen over Converteren
.
• Verwerking van CSS, JavaScript en andere ingebouwde formaten.
PDF genereren vanuit HTML met één regel Java‑code
Je kunt eenvoudig PDF genereren vanuit HTML in je Java‑applicatie met letterlijk één regel code via de statische methoden van de Converter ‑klasse.
// 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"
);
PDF genereren vanuit HTML regel voor regel met Java
Hieronder staan de stappen om PDF te genereren vanuit HTML regel voor regel:
- Gebruik de HtmlDocument ‑klasse om eerst het HTML‑bestand te laden.
- Maak vervolgens een instantie van PdfSaveOptions .
- Met de ConvertHTML() ‑methode van de Converter ‑klasse sla je HTML op als een PDF‑bestand. Je moet het HTMLDocument , de PdfSaveOptions en het uitvoer‑bestandspad doorgeven aan de ConvertHTML()‑methode om PDF vanuit HTML te genereren.
// 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();
}
}
Het renderproces aanpassen met de opslaan‑optie
Je kunt het renderproces aanpassen met de PdfSaveOptions en de pagina‑grootte , bestandsrechten , marges , CSS‑mediatype en nog veel meer specificeren. In het onderstaande voorbeeld zie je hoe je PdfSaveOptions gebruikt om een PDF‑bestand te maken met een aangepaste paginagrootte en achtergrondkleur:
// 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"
);
In het artikel Fine‑Tuning Converters vind je meer informatie over PdfSaveOptions .
Output‑stream‑provider
Je kunt de MemoryStreamProvider
‑interface implementeren als je bestanden wilt opslaan in externe opslag, zoals de cloud of een database.
De MemoryStreamProvider‑interface is ontworpen als callback‑object om een stream te creëren en de eerder gemaakte stream vrij te geven na het renderen van de pagina of het document.
We laten hieronder een voorbeeld zien van het gebruik van 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 biedt technische ondersteuning voor al haar producten, via knowledge base‑artikelen
, documentatie
, blog
, code‑samples
en demo‑toepassingen
, evenals Gratis ondersteuning
en zeer toegankelijke Betaalde ondersteuning
.
Als je experts nodig hebt die met je samenwerken en je helpen Aspose.HTML for Java volgens jouw wensen te implementeren, is de beste oplossing onze Betaalde consultancy
.