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.

  1. Crea una instancia de HtmlLoadOptions clase.
  2. Inicializar un Documento objeto con el archivo HTML fuente.
  3. 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)

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.

  1. Crea una instancia de HtmlLoadOptions() clase.
  2. Establecer html_media_type para aplicar reglas CSS destinadas a diseños de pantalla o impresión, como HtmlMediaType.SCREEN o HtmlMediaType.PRINT.
  3. Cargar el HTML en un ap.Document usando las opciones de carga.
  4. 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.

  1. Crea una instancia de HtmlLoadOptions clase.
  2. Establecer is_priority_css_page_rule = False para permitir que otros estilos tengan prioridad sobre @page reglas.
  3. Cargar el HTML en un ap.Document con las opciones configuradas.
  4. 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.

  1. Crear HtmlLoadOptions() para configurar la conversión de HTML a PDF.
  2. Establecer is_embed_fonts = True para incrustar las fuentes usadas en el HTML directamente en el PDF.
  3. Cargar el HTML en un ap.Document con estas opciones.
  4. 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.

  1. Crear una instancia de HtmlLoadOptions() para configurar el proceso de conversión.
  2. Activar is_render_to_single_page para renderizar todo el contenido HTML en una sola página.
  3. Cargue el documento con las opciones configuradas en un ap.Document.
  4. 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.

  1. Crea una instancia de HtmlLoadOptions para controlar cómo se convierte el HTML.
  2. Active el etiquetado semántico para que el PDF contenga elementos estructurados.
  3. Abra el archivo HTML usando las opciones configuradas.
  4. 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.

  1. Crear una instancia de ap.MhtLoadOptions() para configurar el procesamiento de archivos MHTML.
  2. Establezca varios parámetros, como el tamaño de página.
  3. Inicialice el documento con el archivo de entrada y las opciones de carga configuradas.
  4. 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)