はじめに

高レベルの PsDocument および XpsDocument クラスに加えて、Python 用の Aspose.Page FOSS は、レンダードキュメントの構築、PDF 出力の作成、XPS パッケージのプログラム的操作のための下位レベルユーティリティのセットを提供します。これらのユーティリティは高レベルクラス内部で使用されるだけでなく、出力を細かく制御したい場合に直接利用することもできます。

この記事では、RenderModelBuilderPdfWriterPdfMetadataRasterRenderer、および XpsDocumentBuilder を取り上げます — これらは PS、EPS、XPS パイプライン全体で共有される共通コンポーネントです。


レンダードキュメントの構築

RenderModelBuilder はページのライフサイクルメソッドを呼び出すことで RenderDocument を段階的に構築します。begin_page() でページを開始し、描画コマンドを追加し、次に end_page() を呼び出します。完成した RenderDocument を取得するには document() を呼び出してください。

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 に書き出す

PdfWriterPdfMetadata インスタンスを受け取り、RenderDocument を PDF 1.4 バイトにシリアライズします。 PdfMetadata オブジェクトに titlecreatorproducercreation_datemod_date、および trapped フィールドを設定し、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)

ラスター描画

RasterRendererRenderDocumentRasterSurface にレンダリングします — メモリ内 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 はカスタムページとメタデータを持つ XPS パッケージを構築するための高レベルな API を提供します。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)

開始手順

関連リソース