कैसे काम करें लेआउट इंजन के साथ 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 enumeration के विरुद्ध वर्गीकृत करता है; ComputedStyle और EdgeSizes प्रति-बॉक्स शैली और बॉक्स-मॉडल माप ले जाते हैं।


चरण 5: लेआउट चलाएँ और पृष्ठांकित करें

layout_block_tree() एक FragmentRoot BlockFragment ज्यामिति प्रदान करता है; इनलाइन सामग्री layout_inline_fragments() के माध्यम से LineFragment पंक्तियों में संगठित होती है; paginate_fragments() परिणामों को PageFragment पृष्ठों में विभाजित करता है, BreakHints का सम्मान करते हुए।

सामान्य समस्याएँ और समाधान

लेआउट आउटपुट खाली है। इनपुट ट्री में कोई styled content नहीं था — लेआउट से पहले स्टाइलशीट्स और कंटेंट संलग्न करें।

एक बॉक्स में अप्रत्याशित display वर्गीकरण है। Check classify_display() तत्व के लिए; गणना किया गया display मान इसे संचालित करता है।

पेज ब्रेक अनियमित स्थानों पर आते हैं। Provide BreakHints to paginate_fragments() ब्रेक अवसरों को मार्गदर्शित करने के लिए।

अक्सर पूछे जाने वाले प्रश्न

बॉक्स और फ्रैगमेंट में क्या अंतर है?

बॉक्स (BoxNode) शैली से प्राप्त लेआउट संरचना का वर्णन करते हैं; फ्रैगमेंट (BlockFragment, LineFragment, PageFragment) ज्यामिति के साथ रखे गए परिणाम होते हैं।

मार्जिन और पैडिंग कहाँ हल होते हैं?

प्रत्येक बॉक्स पर EdgeSizes में — जब आयाम आपको चौंकाते हैं तो पहला स्थान जहाँ देखना चाहिए।

क्या इंजन टेक्स्ट को आकार देता है?

इनलाइन सामग्री को ShapedRun टुकड़ों में आकार दिया जाता है, लाइन असेंबली से पहले।

यह भी देखें

 हिन्दी