Introducere
În plus, înaltul nivel de PsDocument și de: XpsDocument clasele, Aspose.Page FOSS pentru Python expune un set de utilități la nivel inferior pentru construirea documentelor render, scrierea PDF-urilor. Aceste utilități sunt utilizate intern în sistemul de distribuție și funcționează cu pachete XPS. de către clasele de nivel înalt şi poate fi folosit direct atunci când aveţi nevoie de un control precis asupra ieșirea.
Acest articol acoperă: RenderModelBuilder, PdfWriter, PdfMetadata, RasterRenderer, și XpsDocumentBuilder componentele comune împărtășite între conductele PS, EPS și XPS.
Construirea unui document de renderizare
RenderModelBuilder construieşte un RenderDocument în mod incremental prin apelarea la ciclul de viață al paginii Începe o pagină cu: begin_page(), adăuga comenzi de desen, apoi sunați end_page(). Sună-mă. document() pentru a recupera completat 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()
Metodele de desen disponibile includ: add_path(), add_text(), add_image(), clip(), save_state(), și restore_state().Sună-mă. set_default_page_size() înainte de begin_page() pentru a stabili o dimensiune implicită care se aplică tuturor paginilor ulterioare.
Scrierea unui document de renderizare în PDF
PdfWriter acceptă o PdfMetadata În cazul în care se aplică o serie de RenderDocument la PDF 1.4 Baite. treci un PdfMetadata obiect cu title, creator, producer, creation_date, mod_date, și trapped câmpuri, apoi apelați write(doc) pentru a produce rezultatul.
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 raster
RasterRenderer face o RenderDocument la o RasterSurface un pixel RGBA în memorie - Cu siguranţă. RasterSurface oferă: get_pixel() și de: set_pixel() pentru pixeluri directe acces, împreună cu: width și de: height Acesta este mecanismul de bază folosit pentru a stabili o soluţie. de către: to_image() pe ambele părți. PsDocument și de: XpsDocument în cazul producerii de ieșiri PNG sau 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}")
Construirea documentelor XPS programatic
XpsDocumentBuilder oferă un API de nivel înalt pentru construirea pachetelor XPS cu personalizat Pagini și metadate. create_page() pentru a adăuga pagini, apoi sunați to_document() pentru a obţine un număr de XpsDocument care pot fi exportate în imagini PDF sau raster.
from aspose.page.xps.document import XpsDocument
xps = XpsDocument.create("My XPS Document")
page = xps.add_page(595, 842)