Introduction

นอกจากการจัดตั้งระดับสูงของ PsDocument และ XpsDocument คลาส Aspose.หน้า FOSS สําหรับ Python เปิดเผยชุดของอุปกรณ์ประโยชน์ระดับต่ําสําหรับการสร้างเอกสาร render, การเขียน PDF output และทํางานกับ XPS package โดยการเขียนโปรแกรม. อุปกรณ์เหล่านี้ใช้ภายใน โดยชั้นสูงและยังสามารถใช้โดยตรงเมื่อคุณต้องการการควบคุมแม่นยําเกี่ยวกับ การออกผลิต.

บทความนี้จะอธิบาย RenderModelBuilder, PdfWriter, PdfMetadata, RasterRenderer,และ XpsDocumentBuilder ส่วนประกอบที่เหมือนกันของท่อ PS, EPS และ XPS.


การสร้างเอกสารการทําตัว

RenderModelBuilder สร้าง a RenderDocument บ่อยๆ โดยเรียกการใช้ชีวิตของหน้า วิธีการ เริ่มหน้าด้วย begin_page(), เพิ่มการวาดคําสั่ง, จากนั้นเรียก end_page(). Call 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().โทรหาฉันนะ set_default_page_size() ก่อนหน้านี้ begin_page() เพื่อกําหนดขนาดตามปกติที่ใช้กับหน้าต่อไปทั้งหมด.


การเขียนเอกสารการทํารูปเป็น PDF

PdfWriter ยอมรับการ PdfMetadata ตัวอย่างและการเรียงลําดับของ RenderDocument เป็น PDF 1.4 ไบท์ ส่ง a PdfMetadata อัตถุที่มี title, creator, producer, creation_date, mod_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)

การทํารัสเตอร์

RasterRenderer ทําให้ a RenderDocument ถึง a RasterSurface พิกเซล RGBA ในความจํา แบฟเวอร์ RasterSurface เสนอให้ get_pixel() และ set_pixel() สําหรับพิกเซลตรง การเข้าถึง พร้อมกับ width และ height นี่คือกลไกที่ใช้อยู่เบื้องหลัง โดย: to_image() ทั้งสอง PsDocument และ XpsDocument เมื่อผลิต PNG หรือ JPEG output.

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 Documents โดยการเขียนโปรแกรม

XpsDocumentBuilder ให้ API ระดับสูงสําหรับการสร้าง XPS แพ็คเกจด้วยแบบพิเศษ หน้าและเมตาเดท การใช้งาน create_page() เพิ่มหน้า แล้วเรียก to_document() เพื่อการได้รับ และ XpsDocument ซึ่งสามารถนําออกเป็นรูปภาพ PDF หรือรัสเตอร์ได้ต่อไป.

from aspose.page.xps.document import XpsDocument

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

เริ่มต้น

แหล่งข้อมูลที่เกี่ยวข้อง