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. Crear una instancia de la HtmlLoadOptions clase.
  2. Inicializar un Documento objeto con el archivo HTML de origen.
  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)

Conversiones relacionadas

Convertir HTML a PDF usando tipo de medio

Este ejemplo muestra cómo convertir un archivo HTML a PDF utilizando opciones de renderizado específicas.

  1. Crear una instancia de la HtmlLoadOptions() clase.
  2. Establecer html_media_type para aplicar reglas CSS destinadas a pantallas o a diseños de 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 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.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 maquetación de página. Si esos estilos entran en conflicto con otras configuraciones, puedes controlar la prioridad con is_priority_css_page_rule.

  1. Crear una instancia de la HtmlLoadOptions clase.
  2. Establecer is_priority_css_page_rule = False para 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 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.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 necesita que el PDF de salida preserve la tipografía original, establezca is_embed_fonts a True.

  1. Crear HtmlLoadOptions() para configurar la conversión de HTML a PDF.
  2. Establecer is_embed_fonts = True incrustar las fuentes utilizadas en el HTML directamente en el PDF.
  3. Cargar el HTML en un ap.Document con estas opciones.
  4. Guarde el documento 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.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. Habilitar is_render_to_single_page para renderizar todo el contenido HTML en una página.
  3. Cargue el documento con las opciones configuradas en un ap.Document.
  4. Guarda 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

Estructura lógica, también llamada Tagged PDF, preserva 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 HTML DOM se asigna 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. Cree una instancia de HtmlLoadOptions para controlar cómo se convierte el HTML.
  2. Active la etiquetación semántica para que el PDF contenga elementos estructurados.
  3. Abra el archivo HTML usando las opciones configuradas.
  4. Guardar 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. Inicializa el documento con el archivo de entrada y las opciones de carga configuradas.
  4. Guarde 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)