소개

고수준 PsDocumentXpsDocument 클래스 외에도, Python용 Aspose.Page FOSS는 렌더 문서를 구축하고 PDF 출력을 작성하며 XPS 패키지를 프로그래밍 방식으로 작업하기 위한 하위 수준 유틸리티 집합을 제공합니다. 이러한 유틸리티는 고수준 클래스 내부에서 사용되며, 출력에 대해 정밀한 제어가 필요할 때 직접 사용할 수도 있습니다.

이 문서에서는 RenderModelBuilder, PdfWriter, PdfMetadata, RasterRenderer, 및 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로 쓰기

PdfWriter은(는) PdfMetadata 인스턴스를 받아 RenderDocument를 PDF 1.4 바이트로 직렬화합니다. title, creator, producer, creation_date, mod_date, trapped 필드를 가진 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)

래스터 렌더링

RasterRenderer은(는) RenderDocument을(를) RasterSurface — 메모리 내 RGBA 픽셀 버퍼 — 로 렌더링합니다. RasterSurface은(는) 직접 픽셀 접근을 위한 get_pixel()set_pixel()를 제공하며, widthheight 속성도 포함합니다. 이는 PsDocumentXpsDocument 모두에서 PNG 또는 JPEG 출력을 생성할 때 to_image()이(가) 사용하는 기본 메커니즘입니다.

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)

시작하기

관련 리소스