Convertir HTML a PDF en Java
Aspose.PDF for Java puede convertir archivos HTML locales, contenido MHTML archivado y páginas web en vivo en documentos PDF. Puede controlar la canalización de conversión con HtmlLoadOptions y MhtLoadOptions para influir en el escalado del diseño, el manejo de medios CSS, la prioridad de reglas de página, la incorporación de fuentes, la resolución de recursos y el comportamiento de renderizado de una sola página.
Convertir HTML a PDF
Utilice este ejemplo cuando un archivo HTML local debe convertirse directamente en un documento PDF.
- Cree una instancia de
HtmlLoadOptionspara configurar cómo se interpreta la fuente HTML durante la importación. - Establezca
HtmlPageLayoutOptionaScaleToPageWidthde modo que el contenido HTML tan ancho se escala al ancho de la página PDF de destino en lugar de ser recortado. - Abra el archivo HTML fuente pasando su ruta y las opciones de carga configuradas al
Documentconstructor. - Guarde lo generado
Documentcomo un archivo PDF en la ruta de salida objetivo.
public static void convertHtmlToPdf(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setPageLayoutOption(HtmlPageLayoutOption.ScaleToPageWidth);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Convertir HTML a PDF con opciones de tipo de medio
Utilice este ejemplo cuando se deba controlar el manejo del tipo de medio CSS durante la conversión HTML.
- Cree una instancia de
HtmlLoadOptionspara la configuración de conversión. - Establezca
HtmlMediaTypeaScreencuando el HTML debe renderizarse con reglas CSS destinadas a la visualización en pantalla en lugar de medios de impresión. - Abra el archivo HTML con las opciones de carga configuradas para que los estilos dependientes de media queries se apliquen durante la conversión.
- Guarde lo resultante
Documentcomo un archivo PDF.
public static void convertHtmlToPdfMediaType(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setHtmlMediaType(HtmlMediaType.Screen);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Convertir HTML a PDF con prioridad de regla de página CSS
Utiliza este ejemplo cuando CSS @page Las reglas deben influir en el diseño final de la página PDF.
- Cree una instancia de
HtmlLoadOptionsantes de abrir el archivo HTML. - Configure
setPriorityCssPageRule(false)cuando otras configuraciones de diseño deben tener prioridad sobre CSS@pagedeclaraciones en el marcado de origen. - Cargue el contenido HTML en un
Documentcon las opciones configuradas para que la disposición de la página se resuelva durante la importación. - Guarde el archivo PDF generado.
public static void convertHtmlToPdfPriorityCssPageRule(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setPriorityCssPageRule(false);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Convertir HTML a PDF con fuentes incrustadas
Utilice este ejemplo cuando el PDF de salida deba conservar las fuentes HTML incrustándolas.
- Cree una instancia de
HtmlLoadOptionspara la configuración de importación HTML. - Habilite
setEmbedFonts(true)por lo que las fuentes resueltas durante la renderización de HTML se almacenan en el PDF de salida. - Abra la fuente HTML con estas opciones de carga para mantener la tipografía original disponible en el documento final.
- Guarde el
Documentcomo un PDF con los recursos de fuente incrustados incluidos.
public static void convertHtmlToPdfEmbedFonts(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setEmbedFonts(true);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Renderizar contenido HTML en una sola página PDF
Utilice este ejemplo cuando el contenido HTML largo debe mantenerse en una sola página PDF en lugar de fluir a través de varias páginas.
- Cree una instancia de
HtmlLoadOptionspara la configuración de conversión. - Habilite
setRenderToSinglePage(true)por lo que el HTML importado se muestra en una sola página PDF en lugar de dividirse en varias páginas. - Abra el HTML de origen con las opciones de carga configuradas y permita que Aspose.PDF construya el diseño de página en un
Document. - Guarde el archivo PDF de salida.
public static void convertHtmlToPdfRenderContentToSamePage(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setRenderToSinglePage(true);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Convertir HTML que contiene SVG en línea
Utilice este ejemplo cuando la fuente HTML incluya datos SVG en línea que deben renderizarse en el PDF.
- Cree una instancia de
HtmlLoadOptionscon el directorio principal del archivo HTML como la ruta base para que los recursos relacionados puedan resolverse de manera consistente durante la conversión. - Abra el archivo HTML que contiene marcado SVG en línea pasando la ruta de origen y las opciones de carga al
Documentconstructor. - Permita que Aspose.PDF renderice el DOM HTML junto con los elementos SVG incrustados en el contenido de la página PDF.
- Guarde el documento PDF generado.
public static void convertHtmlToPdfWithSvgData(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions(inputFile.getParent().toString());
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Convertir una página web a PDF
Utilice este ejemplo cuando una URL web en vivo deba ser renderizada y guardada como un documento PDF.
- Cree una instancia de
HtmlLoadOptionscon la URL de destino para que los recursos relativos, como hojas de estilo e imágenes, puedan resolverse contra esa dirección. - Convierta la cadena URL en un objeto
URLy abra su flujo de entrada para obtener el contenido HTML en vivo. - Cree un
Documentdel flujo de respuesta y las opciones de carga configuradas para que la página descargada se procese con la URL base correcta. - Guarde la página web renderizada como un archivo PDF y cierre los recursos de flujo automáticamente con try-with-resources.
public static void convertWebPageToPdf(String urlString, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions(urlString);
try {
URL url = URI.create(urlString).toURL();
try (InputStream inputStream = url.openStream()) {
try (Document document = new Document(inputStream, loadOptions)) {
document.save(outputFile.toString());
}
}
System.out.println(url + " converted into " + outputFile);
} catch (Exception e) {
e.printStackTrace();
}
}
Convertir MHTML a PDF
Utilice este ejemplo cuando un archivo MHTML archivado deba convertirse en un documento PDF.
- Cree una instancia de
MhtLoadOptionspara indicar a Aspose.PDF que cargue la fuente como contenido HTML MIME. - Abra el
.mhto.mhtmlarchivo pasando su ruta y las opciones de carga MHTML en elDocumentconstructor. - Permita que Aspose.PDF analice el contenido HTML archivado y sus recursos incrustados en el modelo de documento PDF.
- Guarde el archivo PDF generado.
public static void convertMhtmlToPdf(Path inputFile, Path outputFile) {
MhtLoadOptions loadOptions = new MhtLoadOptions();
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}