Einleitung

Zusätzlich zu den High-Level-Klassen PsDocument und XpsDocument stellt Aspose.Page FOSS für Python eine Reihe von Low-Level-Utilities zum Erstellen von Render-Dokumenten, zum Schreiben von PDF-Ausgaben und zum programmgesteuerten Arbeiten mit XPS-Paketen bereit. Diese Utilities werden intern von den High-Level-Klassen verwendet und können auch direkt eingesetzt werden, wenn Sie eine präzise Kontrolle über die Ausgabe benötigen.

Dieser Artikel behandelt RenderModelBuilder, PdfWriter, PdfMetadata, RasterRenderer und XpsDocumentBuilder — die gemeinsamen Komponenten, die in den PS-, EPS- und XPS-Pipelines verwendet werden.


Erstellen eines Render-Dokuments

RenderModelBuilder erstellt ein RenderDocument schrittweise, indem Seiten-Lifecycle-Methoden aufgerufen werden. Beginnen Sie eine Seite mit begin_page(), fügen Sie Zeichenbefehle hinzu und rufen Sie dann end_page() auf. Rufen Sie document() auf, um das fertiggestellte RenderDocument zu erhalten.

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()

Verfügbare Zeichenmethoden umfassen add_path(), add_text(), add_image(), clip(), save_state() und restore_state(). Rufen Sie set_default_page_size() vor begin_page() auf, um eine Standardgröße festzulegen, die für alle nachfolgenden Seiten gilt.


Schreiben eines Render-Dokuments als PDF

PdfWriter akzeptiert eine PdfMetadata-Instanz und serialisiert ein RenderDocument zu PDF 1.4 Bytes. Übergeben Sie ein PdfMetadata-Objekt mit den Feldern title, creator, producer, creation_date, mod_date und trapped, und rufen Sie dann write(doc) auf, um die Ausgabe zu erzeugen.

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)

Rasterdarstellung

RasterRenderer rendert ein RenderDocument zu einem RasterSurface — einem im Speicher befindlichen RGBA-Pixelpuffer. Der RasterSurface stellt get_pixel() und set_pixel() für den direkten Pixelzugriff bereit, zusammen mit den Eigenschaften width und height. Dies ist der zugrunde liegende Mechanismus, der von to_image() sowohl auf PsDocument als auch auf XpsDocument verwendet wird, wenn PNG- oder JPEG-Ausgabe erzeugt wird.

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}")

XPS-Dokumente programmgesteuert erstellen

XpsDocumentBuilder bietet ein hochstufiges API zum Erstellen von XPS-Paketen mit benutzerdefinierten Seiten und Metadaten. Verwenden Sie create_page(), um Seiten hinzuzufügen, und rufen Sie dann to_document() auf, um ein XpsDocument zu erhalten, das weiter zu PDF oder Rasterbildern exportiert werden kann.

from aspose.page.xps.document import XpsDocument

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

Erste Schritte

Verwandte Ressourcen