Convertir HTML a PDF en Python
Conversión de HTML a PDF con Python
Aspose.PDF for Python via .NET le permite convertir documentos HTML existentes a PDF con opciones de renderizado flexibles. Puede ajustar finamente cómo se genera la salida para que coincida con sus requisitos de diseño, estilo, accesibilidad y archivado.
Convertir HTML a PDF
El siguiente ejemplo de Python muestra el flujo de trabajo básico para convertir un documento HTML a PDF.
- Crea una instancia de HtmlLoadOptions clase.
- Inicializar un Documento objeto con el archivo HTML fuente.
- Guarde el documento PDF de salida llamando
document.save().
from os import path
import aspose.pdf as ap
path_infile = path.join(self.data_dir, infile)
path_outfile = path.join(self.data_dir, "python", outfile)
load_options = ap.HtmlLoadOptions()
load_options.page_layout_option = ap.HtmlPageLayoutOption.SCALE_TO_PAGE_WIDTH
document = ap.Document(path_infile, load_options)
document.save(path_outfile)
print(infile + " converted into " + outfile)
Intenta convertir HTML a PDF en línea
Aspose presenta la aplicación en línea gratuita “HTML a PDF”, donde puedes probar la calidad de la conversión y la salida.
Convertir HTML a PDF usando el tipo de medio
Este ejemplo muestra cómo convertir un archivo HTML a PDF utilizando opciones de renderizado específicas.
- Crea una instancia de HtmlLoadOptions() clase.
- Establecer
html_media_typepara aplicar reglas CSS destinadas a diseños de pantalla o impresión, comoHtmlMediaType.SCREENoHtmlMediaType.PRINT. - Cargar el HTML en un
ap.Documentusando las opciones de carga. - Guarde el documento como PDF.
from os import path
import aspose.pdf as ap
path_infile = path.join(self.data_dir, infile)
path_outfile = path.join(self.data_dir, "python", outfile)
load_options = ap.HtmlLoadOptions()
load_options.html_media_type = ap.HtmlMediaType.SCREEN
document = ap.Document(path_infile, load_options)
document.save(path_outfile)
print(infile + " converted into " + outfile)
Prioriza el CSS @page regla durante la conversión de HTML a PDF
Algunos documentos usan el @page regla para el diseño de página. Si esos estilos entran en conflicto con otras configuraciones, puedes controlar la prioridad con is_priority_css_page_rule.
- Crea una instancia de HtmlLoadOptions clase.
- Establecer
is_priority_css_page_rule = Falsepara permitir que otros estilos tengan prioridad sobre@pagereglas. - Cargar el HTML en un
ap.Documentcon las opciones configuradas. - Guarde el documento como PDF.
from os import path
import aspose.pdf as ap
path_infile = path.join(self.data_dir, infile)
path_outfile = path.join(self.data_dir, "python", outfile)
load_options = ap.HtmlLoadOptions()
# load_options.is_priority_css_page_rule = False
document = ap.Document(path_infile, load_options)
document.save(path_outfile)
print(infile + " converted into " + outfile)
Convertir HTML a PDF con fuentes incrustadas
Este ejemplo muestra cómo convertir un archivo HTML a PDF mientras se incrustan fuentes. Si necesitas que el PDF de salida preserve la tipografía original de manera más fiable, establece is_embed_fonts a True.
- Crear
HtmlLoadOptions()para configurar la conversión de HTML a PDF. - Establecer
is_embed_fonts = Truepara incrustar las fuentes usadas en el HTML directamente en el PDF. - Cargar el HTML en un
ap.Documentcon estas opciones. - Guarde el documento como PDF.
from os import path
import aspose.pdf as ap
path_infile = path.join(self.data_dir, infile)
path_outfile = path.join(self.data_dir, "python", outfile)
load_options = ap.HtmlLoadOptions()
load_options.is_embed_fonts = True
document = ap.Document(path_infile, load_options)
document.save(path_outfile)
print(infile + " converted into " + outfile)
Renderizar contenido HTML en una sola página PDF
Este ejemplo muestra cómo convertir un archivo HTML en un PDF de una sola página usando Aspose.PDF for Python via .NET. Utilice el is_render_to_single_page propiedad cuando deseas que todo el contenido HTML se renderice en una sola página continua.
- Crear una instancia de
HtmlLoadOptions()para configurar el proceso de conversión. - Activar
is_render_to_single_pagepara renderizar todo el contenido HTML en una sola página. - Cargue el documento con las opciones configuradas en un
ap.Document. - Guarde el resultado como un archivo PDF.
from os import path
import aspose.pdf as ap
path_infile = path.join(self.data_dir, infile)
path_outfile = path.join(self.data_dir, "python", outfile)
options = ap.HtmlLoadOptions()
options.is_render_to_single_page = True
doc = ap.Document(path_infile, options)
doc.save(path_outfile)
Crear estructura lógica a partir de etiquetas HTML
La estructura lógica, también llamada PDF etiquetado, conserva la jerarquía semántica del HTML original, como encabezados, párrafos y listas. Esto hace que el PDF resultante sea más accesible, buscable y adecuado para flujos de trabajo de documentos estructurados.
Al habilitar la estructura lógica durante la conversión, el DOM HTML se mapea a un árbol de etiquetas PDF en lugar de renderizarse solo como contenido visual.
Para cumplir con los requisitos de accesibilidad, un PDF debe incluir elementos de estructura lógica que definan el orden de lectura, proporcionen texto alternativo para los lectores de pantalla y preserven la jerarquía del contenido.
La calidad de la estructura lógica en el PDF de salida depende directamente de la calidad del marcado HTML original. Un HTML mal estructurado o inválido puede resultar en un etiquetado incompleto o inexacto en el PDF convertido.
- Crea una instancia de HtmlLoadOptions para controlar cómo se convierte el HTML.
- Active el etiquetado semántico para que el PDF contenga elementos estructurados.
- Abra el archivo HTML usando las opciones configuradas.
- Guarda el PDF estructurado.
import aspose.pdf as ap
# Path to the source HTML
input_html_path = "input.html"
# Path for the Logical Structure PDF
output_pdf_path = "output_logical_structure.pdf"
# Initialize HtmlLoadOptions
options = ap.HtmlLoadOptions()
# Convert HTML markup to PDF logical structure elements
options.create_logical_structure = True
# Open PDF document
with ap.Document(input_html_path, options) as document:
# Save PDF document
document.save(output_pdf_path)
Convertir MHTML a PDF
Este ejemplo muestra cómo convertir un archivo MHT o MHTML en un documento PDF usando Aspose.PDF for Python via .NET con dimensiones de página específicas.
- Crear una instancia de
ap.MhtLoadOptions()para configurar el procesamiento de archivos MHTML. - Establezca varios parámetros, como el tamaño de página.
- Inicialice el documento con el archivo de entrada y las opciones de carga configuradas.
- Guarda el documento resultante como un PDF.
from os import path
import aspose.pdf as ap
path_infile = path.join(self.data_dir, infile)
path_outfile = path.join(self.data_dir, "python", outfile)
load_options = ap.MhtLoadOptions()
load_options.page_info.width = 842
load_options.page_info.height = 1191
document = ap.Document(path_infile, load_options)
document.save(path_outfile)
print(infile + " converted into " + outfile)
