Въведение
Освен високо равнище, PsDocument и в) XpsDocument класове, Aspose.Страница FOSS за Python излага набор от утилити за по-ниско ниво, които могат да създават документи с рендер и PDF файлове. Изход, и работа с XPS пакети програмно. Тези утилити се използват вътрешно от висшите класове и може да се използва директно, когато е необходимо прецизен контрол върху изхода.
В тази статия ще разгледаме: RenderModelBuilder, PdfWriter, PdfMetadata, RasterRenderer, и XpsDocumentBuilder общите компоненти, споделяни в тръбопроводите 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().Обади се. set_default_page_size() преди това begin_page() да се установи размер по подразбиране, който се прилага за всички следващи страници.
Напишете документ за изобразяване на PDF
PdfWriter приема да PdfMetadata сериализира в един пример. RenderDocument в PDF 1.4 Дайте ми а. 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 до а RasterSurface в памет RGBA пиксел Буферът. RasterSurface предвижда: get_pixel() и в) set_pixel() за директни пиксели достъп, заедно с width и в) height Това е основният механизъм, използван за определяне на характеристиките и приоритетите. от: to_image() на двете страни PsDocument и в) XpsDocument при изработване на 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() да се получи и в XpsDocument които могат да бъдат изнесени в PDF или растерни образи.
from aspose.page.xps.document import XpsDocument
xps = XpsDocument.create("My XPS Document")
page = xps.add_page(595, 842)