مقدمة
بالإضافة إلى مستوى عال من التعاون مع المواطنين في مجال الإعلام. PsDocument و XpsDocument فئات Aspose .صفحة FOSS لـ يُعرض بايثون مجموعة من المرافق ذات المستوى الأدنى لبناء مستندات الرندر، وكتابة PDF. ويعمل مع حزم XPS برمجيا. هذه المرافق تستخدم داخليا من قبل فئات المستوى العالي ويمكن استخدامها مباشرة عندما تحتاج إلى التحكم الدقيق في الناتج.
تغطي هذه المقالة: RenderModelBuilder, PdfWriter, PdfMetadata, RasterRenderer,، و XpsDocumentBuilder المكونات المشتركة التي تتشارك في أنابيب PS و EPS و XPS.
إنشاء وثيقة تقديم
RenderModelBuilder يبنين a 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 بايت. تمرير 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 يجعل من RenderDocument إلى a 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 يوفر واجهة برمجة التطبيقات عالية المستوى لبناء حزم 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)