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)

Pour commencer

Ressources associées