Generar PDF a partir de HTML usando Java [Paso a paso]
Este artículo le mostrará cómo generar PDFs a partir de HTML usando Java. Puede manipular y renderizar fácilmente documentos HTML, incluidos los estilos CSS.
Aspose.HTML para Java
permite a sus aplicaciones realizar una amplia gama de tareas de manipulación de HTML y admite HTML5, CSS3, SVG y funciones de HTML Canvas. Con nuestra API puede cargar páginas web, analizar, editar el contenido y guardar y convertir páginas.
Formatos populares que puede manipular: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP y otros.
Conjunto completo de funciones
Aspose.HTML for Java le ofrece muchas funciones en diferentes áreas:
• Modelo de objeto de documento (DOM) – permite editar, crear y eliminar nodos, y está construido según la documentación oficial de HTML.
• Convertidores de alto rendimiento. Para más información sobre los formatos de archivo compatibles, visite la lista de Lista de funciones
o los artículos de Conversión
.
• Procesamiento de CSS, JavaScript y otros formatos integrados.
Generar PDF a partir de HTML con una sola línea de código Java
Puede generar fácilmente PDF a partir de HTML en su aplicación Java con literalmente una sola línea de código usando los métodos estáticos de la clase Convertidor .
// 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"
);
Generar PDF a partir de HTML línea por línea usando Java
A continuación se presentan los pasos para generar PDF a partir de HTML línea por línea:
- Utilizando la clase HtmlDocument cargue primero el archivo HTML.
- Después cree una instancia de PdfSaveOptions .
- Con el método ConvertHTML() de la clase Converter guarde HTML como un archivo PDF. Necesitará pasar el HTMLDocument , PdfSaveOptions y la ruta del archivo de salida al método ConvertHTML() para generar PDF a partir de 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();
}
}
Personalizar el proceso de renderizado con la opción Save
Puede personalizar el proceso de renderizado con los PdfSaveOptions , y especificar el tamaño de página , permisos de archivo , márgenes , tipo de medio CSS , y mucho más. En el ejemplo mostrado a continuación puede ver cómo usar PdfSaveOptions y crear un archivo PDF con un tamaño de página personalizado y color de fondo:
// 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"
);
En el artículo Ajuste fino de convertidores puede encontrar más información sobre PdfSaveOptions .
Proveedor de flujo de salida
Puede implementar la interfaz MemoryStreamProvider
si desea guardar archivos en almacenamiento remoto, como la nube o una base de datos.
La interfaz MemoryStreamProvider está diseñada como un objeto de devolución de llamada para crear un flujo y liberar el flujo creado previamente después de renderizar la página o el documento.
A continuación le mostraremos un ejemplo de uso de 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 ofrece soporte técnico para todos sus productos, desde artículos de la base de conocimientos
, documentación
, blog
, ejemplos de código
, y demos
, hasta Soporte gratuito
así como Soporte de pago
.
Si necesita expertos que trabajen con usted y le ayuden a implementar Aspose.HTML para Java según sus necesidades, la mejor solución es nuestra Consultoría de pago
.