Introducción

Además de los niveles más altos PsDocument y XpsDocument de la clase, Aspose.Page FOSS para Python expone un conjunto de utilidades de nivel inferior para la construcción de documentos render, escribir PDF producción, y trabajar con los paquetes XPS de forma programática. estas utilidades se utilizan internamente por las clases de alto nivel y también se puede utilizar directamente cuando necesita un control preciso sobre el La producción .

Este artículo cubre RenderModelBuilder, PdfWriter, PdfMetadata, RasterRenderer,y, XpsDocumentBuilder — los componentes comunes compartidos a través de las pipelinas PS, EPS y XPS.


Creación de un documento Render

RenderModelBuilder Construye a RenderDocument Incrementar la página de ciclo de vida Inicio > Comienza una página con begin_page(), añade los comandos de dibujo, luego llame end_page(). llamadas document() para recuperar el finalizado RenderDocument.

from aspose.page.render.model import RenderModelBuilder

builder = RenderModelBuilder()
builder.begin_page(595, 842)
# add paths, text, images here
builder.end_page()
doc = builder.document()

Los métodos de dibujo disponibles incluyen add_path(), add_text(), add_image(), clip(), save_state(),y, restore_state().llamadas set_default_page_size() Antes de begin_page() para establecer un tamaño de default que se aplique a todas las páginas posteriores.


Escribir un documento de rendimiento en PDF

PdfWriter acepta a PdfMetadata La serie y la serie a RenderDocument El PDF 1.4 Título: Pasar a PdfMetadata Objeto con title, creator, producer, creation_date, mod_date,y, trapped Los campos, luego llamar write(doc) para producir la producción.

from aspose.page.render.model import RenderModelBuilder
from aspose.page.pdf.writer import PdfWriter
from aspose.page.pdf.metadata import PdfMetadata
from pathlib import Path

builder = RenderModelBuilder()
builder.begin_page(595, 842)
builder.end_page()
doc = builder.document()

metadata = PdfMetadata(
    title="My Document",
    creator="My App",
    producer="Aspose.Page FOSS for Python",
    creation_date="D:20260609000000",
    mod_date="D:20260609000000",
    trapped=False,
)
writer = PdfWriter(metadata)
pdf_bytes = writer.write(doc)
Path("output.pdf").write_bytes(pdf_bytes)

Renderado de Raster

RasterRenderer Los rendidores a RenderDocument Para a RasterSurface - Un píxel RGBA en memoria El buffer, el RasterSurface proporciona get_pixel() y set_pixel() Para el Pixel Direct El acceso, junto con width y height La propiedad: es el mecanismo de base utilizado. por to_image() En ambos PsDocument y XpsDocument producción de PNG o JPEG.

from aspose.page.render.model import RenderModelBuilder
from aspose.page.image.raster_renderer import RasterRenderer

builder = RenderModelBuilder()
builder.begin_page(400, 300)
builder.end_page()
doc = builder.document()

renderer = RasterRenderer()
surface = renderer.render(doc, page_index=0)
print(f"Surface size: {surface.width}x{surface.height}")

Creación de documentos XPS programada

XpsDocumentBuilder proporciona una API de alto nivel para la construcción de paquetes XPS con su personalidad Páginas y metadatos.Utilizar create_page() Para añadir páginas, luego llamar to_document() Para obtener Una XpsDocument que se puede exportar a más de PDF o raster imágenes.

from aspose.page.xps.document import XpsDocument

xps = XpsDocument.create("My XPS Document")
page = xps.add_page(595, 842)

Empezando a

Recursos relacionados