Ez a cikk bemutatja, hogyan lehet PDF-eket generálni HTML-ből Java használatával. Könnyedén manipulálhatja és renderelheti a HTML dokumentumokat, beleértve a CSS stílusokat.
Aspose.HTML for Java
lehetővé teszi, hogy alkalmazásai széles körű HTML‑manipulációs feladatokat hajtsanak végre, és támogatják a HTML5, CSS3, SVG és HTML Canvas funkciókat. API‑jával weboldalakat tölthet be, elemezheti, szerkesztheti a tartalmat, valamint mentheti és konvertálhatja az oldalakat.
A manipulálható népszerű formátumok: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP és egyebek.
PDF HTML-ből Java-ban
Gazdag funkciók
Aspose.HTML for Java számos funkciót kínál különböző területeken:
- Dokumentum objektum modell – lehetővé teszi a csomópontok szerkesztését, létrehozását és eltávolítását, és a hivatalos HTML dokumentáció szerint épül fel.
- Nagy teljesítményű konvertálók. További információért a támogatott fájlformátumokról tekintse meg a Features List
vagy a Converting
cikkeket.
- CSS, JavaScript és egyéb beépített formátumok feldolgozása.
PDF generálása HTML-ből egyetlen Java sorral
Könnyedén generálhat PDF-et HTML-ből Java‑alkalmazásában egyetlen kódsorral a Converter
osztály statikus metódusainak használatával.
// 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 generálása HTML-ből soronként Java használatával
Az alábbiakban lépésről lépésre bemutatjuk, hogyan generálhat PDF-et HTML-ből soronként:
- A HtmlDocument
osztály segítségével töltse be először a HTML fájlt.
- Ezután hozza létre a PdfSaveOptions
példányt.
- A ConvertHTML()
metódus segítségével a Converter
osztályból mentse a HTML-t PDF fájlként. A HTMLDocument
, a PdfSaveOptions
és a kimeneti fájl útvonala átadásával a ConvertHTML() metódus PDF-et generál HTML‑ből.
// 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();
}
}
A renderelési folyamat testreszabása a Save opcióval
Testreszabhatja a renderelési folyamatot a PdfSaveOptions
segítségével, és megadhatja a page size
, a file permissions
, a margins
, a CSS media type
és még sok más beállítást. Az alábbi példában látható, hogyan használja a PdfSaveOptions‑t egy egyedi oldalmérettel és háttérszínnel rendelkező PDF fájl létrehozásához:
// 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"
);
A Konverterek finomhangolása
cikkben további információkat talál a PdfSaveOptions
használatáról.
Kimeneti adatfolyam szolgáltató
Implementálhatja a MemoryStreamProvider
interfészt, ha a fájlokat távoli tárolóban, például felhőben vagy adatbázisban szeretné menteni.
A MemoryStreamProvider interfész egy visszahívási objektumként működik, amely adatfolyamot hoz létre, majd a renderelés befejezése után felszabadítja azt.
Az alábbiakban egy példát mutatunk be a MemoryStreamProvider használatára:
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();
}
}
}
Az Aspose technikai támogatást nyújt minden termékéhez, beleértve a tudásbázis cikkeket
, a dokumentációt
, a blogot
, a kódmintákat
, valamint a demókat
, a Ingyenes támogatást
és a könnyen elérhető Fizetett támogatást
. Ha olyan szakértőkre van szüksége, akik együtt dolgoznak Önnel és segítenek az Aspose.HTML for Java megvalósításában az Ön igényei szerint, a legjobb megoldás a Fizetett tanácsadás
.