Introduction
En plus du niveau élevé, PsDocument et XpsDocument Les classes, Aspose.Page FOSS pour Python expose un ensemble d’outils de niveau inférieur pour la construction des documents rendus, l’écriture PDF de production, et travailler avec les paquets XPS programmés. Ces utilités sont utilisées internellement par les classes de haut niveau et peut également être utilisé directement lorsque vous avez besoin d’un contrôle précis sur La production .
Cet article couvre RenderModelBuilder, PdfWriter, PdfMetadata, RasterRenderer,et XpsDocumentBuilder - les composants communs partagés sur les pipelines PS, EPS et XPS.
Créer un document de render
RenderModelBuilder Construire A RenderDocument Accroître le cycle de vie de la page Métodes. démarrer une page avec begin_page(),ajouter des commandes de dessin, puis appeler end_page(). Appel à document() Pour retrouver le complet 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()
Les méthodes de dessin disponibles incluent add_path(), add_text(), add_image(), clip(), save_state(),et restore_state().- appeler set_default_page_size() Avant begin_page() pour établir une taille par défaut qui s’applique à toutes les pages ultérieures.
Écrire un document de render en PDF
PdfWriter accepter A PdfMetadata Série et série A RenderDocument à PDF 1.4 Boutes. passe à PdfMetadata Objet avec title, creator, producer, creation_date, mod_date,et trapped Les champs, puis appeler write(doc) pour produire la production.
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)
Rendering de Raster
RasterRenderer Rendez-vous à RenderDocument à A RasterSurface - un pixel RGBA en mémoire Le buffer, le RasterSurface Fournir get_pixel() et set_pixel() Pour le pixel direct Accès, avec width et height C’est le mécanisme de base utilisé. par to_image() sur les deux PsDocument et XpsDocument Pour produire des produits PNG ou 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}")
Créer des documents XPS programmés
XpsDocumentBuilder fournit un API de haut niveau pour la construction des paquets XPS avec une configuration personnalisée Pages et métadonnées. utilisation create_page() Pour ajouter des pages, appelez-vous ensuite to_document() Pour obtenir Un XpsDocument Ce qui peut être plus exporté à des images PDF ou raster.
from aspose.page.xps.document import XpsDocument
xps = XpsDocument.create("My XPS Document")
page = xps.add_page(595, 842)