Layout Engine'i Python'de Nasıl Kullanılır

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 CSSStyleSheet

Adı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.

Ayrıca Bakınız

 Türkçe