Introduction
Ngoài mức độ cao PsDocument và XpsDocument Các lớp học, Aspose.Page FOSS for Python trình bày một bộ các tiện ích cấp thấp hơn để xây dựng tài liệu render, viết PDF sản xuất, và làm việc với gói XPS lập trình. các tiện ích này được sử dụng nội bộ bởi các lớp học cấp cao và cũng có thể được sử dụng trực tiếp khi bạn cần kiểm soát chính xác về sản xuất .
Bài viết này bao gồm RenderModelBuilder, PdfWriter, PdfMetadata, RasterRenderer, và XpsDocumentBuilder - Các thành phần chung được chia sẻ qua các ống PS, EPS và XPS.
Xây dựng tài liệu Render
RenderModelBuilder xây dựng a RenderDocument Tăng cường bằng cách gọi trang vòng đời Bắt đầu một trang với begin_page(), thêm lệnh vẽ, sau đó gọi end_page(). Call document() Để lấy lại những hoàn thành 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()
Các phương pháp vẽ có sẵn bao gồm add_path(), add_text(), add_image(), clip(), save_state(), và restore_state().gọi điện set_default_page_size() trước đây begin_page() để thiết lập kích thước mặc định áp dụng cho tất cả các trang sau đó.
Viết tài liệu Render vào PDF
PdfWriter chấp nhận a PdfMetadata Tính năng và serializes a RenderDocument Tải PDF 1.4 Bút. đi qua a PdfMetadata đối tượng với title, creator, producer, creation_date, mod_date, và trapped Các trường, sau đó gọi write(doc) để sản xuất sản lượng.
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)
Raster Rendering Đánh giá
RasterRenderer Đưa A RenderDocument đến a RasterSurface - Một pixel in-memory RGBA Bác sĩ: The RasterSurface cung cấp get_pixel() và set_pixel() - Tính năng Pixel Direct Truy cập, cùng với width và height - Tính chất: Đây là cơ chế cơ bản được sử dụng. bởi to_image() trên cả hai PsDocument và XpsDocument khi sản xuất PNG hoặc 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}")
Xây dựng tài liệu XPS theo lập trình
XpsDocumentBuilder cung cấp một API cấp cao để xây dựng gói XPS với tùy chỉnh Trang và metadata. sử dụng create_page() để thêm trang, sau đó gọi to_document() để có được một XpsDocument có thể được xuất thêm vào PDF hoặc raster hình ảnh.
from aspose.page.xps.document import XpsDocument
xps = XpsDocument.create("My XPS Document")
page = xps.add_page(595, 842)