简介

除了高级的 PsDocumentXpsDocument 类之外,针对 Python 的 Aspose.Page FOSS 还提供了一套用于构建渲染文档、生成 PDF 输出以及以编程方式处理 XPS 包的底层实用工具。这些实用工具由高级类内部使用,也可以在需要对输出进行精确控制时直接使用。

本文涵盖 RenderModelBuilderPdfWriterPdfMetadataRasterRendererXpsDocumentBuilder — 在 PS、EPS 和 XPS 流水线中共享的通用组件。


构建渲染文档

RenderModelBuilder 通过调用页面生命周期方法逐步构建一个 RenderDocument。使用 begin_page() 开始一个页面,添加绘图指令,然后调用 end_page()。调用 document() 以获取完成的 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()

可用的绘图方法包括 add_path()add_text()add_image()clip()save_state()restore_state()。在 begin_page() 之前调用 set_default_page_size(),以设定适用于所有后续页面的默认尺寸。


将渲染文档写入 PDF

PdfWriter 接受一个 PdfMetadata 实例,并将 RenderDocument 序列化为 PDF 1.4 字节。传入一个包含 titlecreatorproducercreation_datemod_datetrapped 字段的 PdfMetadata 对象,然后调用 write(doc) 生成输出。

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)

光栅渲染

RasterRendererRenderDocument 渲染为 RasterSurface — 一个内存中的 RGBA 像素缓冲区。RasterSurface 提供 get_pixel()set_pixel() 以直接像素访问,并附带 widthheight 属性。这是 to_image()PsDocumentXpsDocument 上生成 PNG 或 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}")

以编程方式构建 XPS 文档

XpsDocumentBuilder 提供了一个高级 API 用于构建带有自定义页面和元数据的 XPS 包。使用 create_page() 添加页面,然后调用 to_document() 获取一个可以进一步导出为 PDF 或光栅图像的 XpsDocument

from aspose.page.xps.document import XpsDocument

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

入门

相关资源