כיצד לעבוד עם מנוע הפריסה ב-Python

כיצד לעבוד עם מנוע הפריסה ב-Python

שכבת הפריסה של Aspose.HTML FOSS עבור 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: הכנת מסמך מעוצב

הפריסה צורך סגנונות מחושבים, ולכן יש לבנות ולעצב את העץ תחילה:

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"))

שלב 4: הפק את עץ הקופסאות

build_box_tree() מייצר BoxRoot של BoxNode ערכים, מסווג את מודל התצוגה של כל אלמנט עם classify_display() כנגד המונה Display; ComputedStyle ו-EdgeSizes נושאים סגנון לכל קופסה ומדידות מודל הקופסה.


שלב 5: הפעל פריסה וחלוקה לעמודים

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) הם תוצאות ממוקמות עם גאומטריה.

היכן מתבצעים המרווחים וה-padding?

ב-EdgeSizes על כל קופסה — המקום הראשון לבדיקה כאשר המימדים מפתיעים אותך.

האם המנוע מעצב טקסט?

תוכן פנימי מעוצב ל-ShapedRun חלקים לפני הרכבת השורה.

ראה גם

 עברית