نحوه کار با موتور چیدمان در Python

نحوه کار با موتور چیدمان در Python

لایهٔ چیدمان Aspose.HTML متن باز برای Python هندسه را از اسناد قالب‌بندی‌شده محاسبه می‌کند: build_box_tree() ساختار جعبه‌ها را استخراج می‌کند، layout_block_tree() قطعات بلوکی را جای‌گذاری می‌کند، و paginate_fragments() خروجی را به صفحات تقسیم می‌کند. این راهنما یک سند قالب‌بندی‌شده — ورودی مورد نیاز — را آماده می‌سازد و هر مرحلهٔ چیدمان را توضیح می‌دهد، با استفاده از pip برای نصب.

راهنمای گام به گام

مرحله 1: نصب بسته

git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .

مرحله 2: وارد کردن کلاس‌های مورد نیاز

from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet

مرحله 3: تهیهٔ سند قالب‌بندی‌شده

چیدمان (Layout) سبک‌های محاسبه‌شده را مصرف می‌کند، بنابراین ابتدا درخت را بسازید و استایل بدهید:

doc = Document()
el = doc.create_element("div")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync("div { color: red }")
doc.attach_style_sheet(sheet)
print(el.get_computed_style().get_property_value("color"))

مرحله ۴: استخراج Box Tree

build_box_tree() یک BoxRoot از BoxNode ورودی تولید می‌کند، مدل نمایش هر عنصر را با classify_display() در برابر شمارش Display طبقه‌بندی می‌کند؛ ComputedStyle و EdgeSizes سبک هر جعبه و اندازه‌های مدل جعبه را در بر دارند.


مرحله ۵: اجرای Layout و صفحه‌بندی

layout_block_tree() یک FragmentRoot از هندسه BlockFragment تولید می‌کند؛ محتوای درون‌خطی به LineFragment خط از طریق layout_inline_fragments() ترکیب می‌شود؛ paginate_fragments() نتایج را به PageFragment صفحه تقسیم می‌کند و BreakHints را رعایت می‌کند.

مشکلات رایج و راه‌حل‌ها

خروجی لایه‌بندی خالی است. درخت ورودی محتوای استایلی نداشت — قبل از لایه‌بندی، شیوه‌نامه‌ها و محتوا را پیوست کنید.

یک جعبه طبقه‌بندی نمایش غیرمنتظره‌ای دارد. Check classify_display() برای عنصر؛ محاسبه‌شده display مقدار آن را هدایت می‌کند.

خطوط شکستن صفحه در مکان‌های نامعمول ظاهر می‌شوند. Provide BreakHints to paginate_fragments() برای راهنمایی فرصت‌های شکستن.

سوالات متداول

تفاوت جعبه‌ها و تکه‌ها چیست؟

جعبه‌ها (BoxNode) ساختار طرح‌بندی را که از سبک‌ها استخراج می‌شود توصیف می‌کنند؛ تکه‌ها (BlockFragment, LineFragment, PageFragment) نتایج قرار گرفته با هندسه هستند.

حاشیه‌ها و فضای داخلی کجا حل می‌شوند؟

در EdgeSizes بر روی هر جعبه — اولین مکانی که هنگام تعجب از ابعاد باید بررسی کنید.

آیا موتور متن را شکل می‌دهد؟

محتواي درون‌خطی قبل از ترکیب خط به ShapedRun قطعه شکل می‌گیرد.

همچنین ببینید:

 فارسی