Úvod

Kromě vysoceúrovňových tříd PsDocument a XpsDocument poskytuje Aspose.Page FOSS pro Python sadu nízkoúrovňových utilit pro vytváření vykreslovacích dokumentů, zápis PDF výstupu a programové zpracování XPS balíčků. Tyto utility jsou interně používány vysoceúrovňovými třídami a mohou být také použity přímo, když potřebujete přesnou kontrolu nad výstupem.

Tento článek pokrývá RenderModelBuilder, PdfWriter, PdfMetadata, RasterRenderer a XpsDocumentBuilder — společné komponenty sdílené napříč PS, EPS a XPS pipeline.


Vytváření vykreslovacího dokumentu

RenderModelBuilder vytváří RenderDocument postupně voláním metod životního cyklu stránky. Začněte stránku pomocí begin_page(), přidejte kreslicí příkazy a poté zavolejte end_page(). Zavolejte document() pro získání dokončeného 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()

Dostupné kreslicí metody zahrnují add_path(), add_text(), add_image(), clip(), save_state() a restore_state(). Zavolejte set_default_page_size() před begin_page() pro nastavení výchozí velikosti, která se použije na všechny následující stránky.


Zápis vykreslovacího dokumentu do PDF

PdfWriter přijímá instanci PdfMetadata a serializuje RenderDocument do PDF 1.4 bajtů. Předávejte objekt PdfMetadata s poli title, creator, producer, creation_date, mod_date a trapped, poté zavolejte write(doc) pro vytvoření výstupu.

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)

Rasterizace

RasterRenderer vykresluje RenderDocument do RasterSurface — paměťového RGBA pixelového bufferu. RasterSurface poskytuje get_pixel() a set_pixel() pro přímý přístup k pixelům, spolu s vlastnostmi width a height. Toto je základní mechanismus používaný to_image() na PsDocument i XpsDocument při vytváření výstupu PNG nebo 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}")

Programové vytváření XPS dokumentů

XpsDocumentBuilder poskytuje vysoceúrovňové API pro vytváření XPS balíčků s vlastními stránkami a metadaty. Použijte create_page() pro přidání stránek, poté zavolejte to_document() pro získání XpsDocument, který může být dále exportován do PDF nebo rastrových obrázků.

from aspose.page.xps.document import XpsDocument

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

Začínáme

Související zdroje