Layout Engine'i Python'de Nasıl Kullanılır
Aspose.HTML FOSS for Python düzen katmanı, stillendirilmiş belgelerden geometri hesaplar: build_box_tree() kutu yapısını türetir, layout_block_tree() blok parçalarını yerleştirir ve paginate_fragments() çıktıyı sayfalara böler. Bu kılavuz, gerekli girdi olan bir stillendirilmiş belge hazırlar — gerekli girdi — ve pip kullanarak kurulum yapmayı içeren her bir düzen aşamasını açıklar.
Adım Adım Kılavuz
Adım 1: Paketi Kurun
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .Adım 2: Gerekli Sınıfları İçe Aktarın
from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheetAdım 3: Bir Stillendirilmiş Belge Hazırlayın
Layout, hesaplanmış stilleri tüketir, bu yüzden önce ağacı oluşturup stillendirin:
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"))Adım 4: Box Tree’yi Türe
build_box_tree(), BoxNode girişten oluşan bir BoxRoot üretir, her öğenin görüntüleme modelini Display enumına karşı classify_display() ile sınıflandırır; ComputedStyle ve EdgeSizes kutu başına stil ve kutu-model ölçümlerini taşır.
Adım 5: Layout’u Çalıştır ve Sayfalama Yap
layout_block_tree(), BlockFragment geometriden oluşan bir FragmentRoot verir; satır içi içerik layout_inline_fragments() aracılığıyla LineFragment satırlara derlenir; paginate_fragments(), sonuçları BreakHints dikkate alarak PageFragment sayfaya ayırır.
Yaygın Sorunlar ve Çözümler
Düzen çıktısı boş. Girdi ağacında stil uygulanmış içerik yoktu — düzenlemeden önce stil sayfalarını ve içeriği ekleyin.
Bir kutunun beklenmedik bir görüntü sınıflandırması var. Check classify_display() öğe için; hesaplanan display değer bunu yönlendirir.
Sayfa kırılımları garip yerlere düşüyor. Provide BreakHints to paginate_fragments() kırılma fırsatlarını yönlendirmek için.
Sık Sorulan Sorular
Kutular ile parçalar arasındaki fark nedir?
Kutular (BoxNode) stillerden türetilen düzen yapısını tanımlar; parçalar (BlockFragment, LineFragment, PageFragment) ise geometrik konumlandırılmış sonuçlardır.
Kenar boşlukları ve dolgu nerede çözülür?
Her kutunun EdgeSizes içinde — boyutlar sizi şaşırttığında bakmanız gereken ilk yer.
Motor metni şekillendiriyor mu?
Satır birleştirilmeden önce satır içi içerik ShapedRun parçaya şekillendirilir.