Introduction
Selain tingkat tinggi, PsDocument dan (b) XpsDocument kelas, Aspose.Page FOSS untuk Python mengekspos satu set utilitas tingkat rendah untuk membangun dokumen render, menulis PDF output, dan bekerja dengan paket XPS secara programatis. Utilitas ini digunakan secara internal oleh kelas tingkat tinggi dan juga dapat digunakan secara langsung ketika Anda membutuhkan kontrol yang tepat atas outputnya.
Artikel ini membahas: RenderModelBuilder, PdfWriter, PdfMetadata, RasterRenderer, dan XpsDocumentBuilder komponen umum yang dibagi di seluruh pipa PS, EPS dan XPS.
Membangun Dokumen Render
RenderModelBuilder membangun sebuah RenderDocument secara bertahap dengan memanggil siklus hidup halaman metode. Mulai halaman dengan begin_page(), menambahkan perintah gambar, kemudian memanggil end_page(). Call document() untuk mengambil selesai 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()
Metode gambar yang tersedia meliputi: add_path(), add_text(), add_image(), clip(), save_state(), dan restore_state().- Panggil. set_default_page_size() sebelum begin_page() untuk menetapkan ukuran default yang berlaku pada semua halaman berikutnya.
Menulis dokumen render ke PDF
PdfWriter menerima a PdfMetadata contoh dan serialisasi a RenderDocument ke PDF 1.4 byte. PdfMetadata objek dengan title, creator, producer, creation_date, mod_date, dan trapped bidang, kemudian panggilan write(doc) untuk menghasilkan output.
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 membuat sebuah RenderDocument untuk a RasterSurface sebuah piksel RGBA dalam memori penyangga. RasterSurface menyediakan get_pixel() dan (b) set_pixel() untuk piksel langsung akses, bersama dengan width dan (b) height Ini adalah mekanisme yang digunakan untuk mengidentifikasi sifat-sifat tertentu. oleh: to_image() pada kedua PsDocument dan (b) XpsDocument saat menghasilkan output PNG atau 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}")
Membangun dokumen XPS secara programatis
XpsDocumentBuilder menyediakan API tingkat tinggi untuk membangun paket XPS dengan kustom halaman dan metadata. create_page() untuk menambahkan halaman, kemudian memanggil to_document() untuk mendapatkan dan XpsDocument yang dapat diekspor ke PDF atau gambar raster.
from aspose.page.xps.document import XpsDocument
xps = XpsDocument.create("My XPS Document")
page = xps.add_page(595, 842)