Introduktion

Förutom de hög-nivå PsDocument- och XpsDocument-klasserna, så exponerar Aspose.Page FOSS för Python en uppsättning lägre nivå-verktyg för att bygga renderdokument, skriva PDF-utdata och arbeta med XPS-paket programatiskt. Dessa verktyg används internt av de hög-nivå klasserna och kan även användas direkt när du behöver exakt kontroll över utdata.

Den här artikeln täcker RenderModelBuilder, PdfWriter, PdfMetadata, RasterRenderer och XpsDocumentBuilder — de gemensamma komponenterna som delas över PS-, EPS- och XPS-pipelines.


Bygga ett renderdokument

RenderModelBuilder konstruerar en RenderDocument stegvis genom att anropa sidans livscykelmetoder. Starta en sida med begin_page(), lägg till ritkommandon, och anropa sedan end_page(). Anropa document() för att hämta den färdiga 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()

Tillgängliga rittekniker inkluderar add_path(), add_text(), add_image(), clip(), save_state() och restore_state(). Anropa set_default_page_size() före begin_page() för att fastställa en standardstorlek som gäller för alla efterföljande sidor.


Skriva ett renderdokument till PDF

PdfWriter accepterar en PdfMetadata-instans och serialiserar en RenderDocument till PDF 1.4-bytes. Skicka ett PdfMetadata-objekt med title, creator, producer, creation_date, mod_date och trapped fält, och anropa sedan write(doc) för att producera utdata.

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)

Rasterrendering

RasterRenderer renderar en RenderDocument till en RasterSurface — en minnesintern RGBA-pixelbuffert. RasterSurface tillhandahåller get_pixel() och set_pixel() för direkt pixelåtkomst, tillsammans med width och height egenskaper. Detta är den underliggande mekanismen som används av to_image() på både PsDocument och XpsDocument när PNG- eller JPEG-utdata produceras.

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

Programmerad konstruktion av XPS-dokument

XpsDocumentBuilder tillhandahåller ett högnivå-API för att konstruera XPS-paket med anpassade sidor och metadata. Använd create_page() för att lägga till sidor, och anropa sedan to_document() för att erhålla en XpsDocument som kan exporteras vidare till PDF eller rasterbilder.

from aspose.page.xps.document import XpsDocument

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

Komma igång

Relaterade resurser