Generation

Generation

Üretim katmanı (omr.generation) bir şablon — öğe yapılandırmalarının bir ağacı — oluşturur ve bunu bir sayfa görüntüsü ile bir .omr tanımlayıcısı olarak OmrEngine.Generate() aracılığıyla işler.


Şablon Ağacı

TemplateConfig, belge kökü olup, bir veya daha fazla PageConfig nesnesi içerir. Bir sayfanın altındaki her öğe, BaseConfig sınıfının bir alt sınıfıdır ve bir Name ile bir Type ayırıcı (ConfigType) taşır.

from omr.generation.config import TemplateConfig
from omr.generation.config.elements.parents import PageConfig

tpl = TemplateConfig()
tpl.Name = "quiz"
page = PageConfig()
page.Children = []
tpl.Children = [page]

Soru Öğeleri

  • ChoiceBoxConfig — sabit bir seçenek balonu kümesine (ChoiceBoxAnswerConfig) sahip bir soru, çoklu seçim ve soru bazlı doğrulamayı destekler.
  • AnswerSheetConfig — sınav tarzı kağıtlar için numaralı yanıt balonu matrisidir.
  • CheckBoxConfig — herhangi bir işareti kabul eden boş kutulardan oluşan etiketli bir grup, ayarlanabilir doluluk eşiği ile.
  • GridConfig / CompositeGridConfig — bir değere birleştirilen rakam veya özel-simge matrisleri.
from omr.generation.config.elements import AnswerSheetConfig

sheet = AnswerSheetConfig()
sheet.Name = "answers"
sheet.AnswersCount = 4    # bubbles per question (e.g. A-D)
sheet.ElementsCount = 20  # number of questions

Sayfa Genelinde Ayarlar

GlobalPageSettings belge genelinde varsayılanları (kağıt boyutu, yönelim, yazı tipi, balon boyutu) ayarlar; bireysel öğeler bunları geçersiz kılabilir. PaperSize ve Orientation, omr.generation üzerinden doğrudan içe aktarılabilir.

from omr.generation import GlobalPageSettings, Orientation, PaperSize

settings = GlobalPageSettings()
settings.PaperSize = PaperSize.A4
settings.Orientation = Orientation.Vertical

Düzen, Taşma ve Yazı Sistemleri

BlockConfig sınırlı, doldurulmuş bir kutudur; ContainerConfig alt blokları sütunlara veya bir alt bilgiye düzenler; PositionedBlockConfig çocukları mutlak koordinatlarda konumlandırır. LongWordHandling, OverflowAction alt sınıfları (Clip, NoClip, Wrap) ve Arabic/Hebrew/Persian/Urdu/Bengali yazı sistemleri, Aspose.OMR yüzeyiyle API doğruluğu için doğru bir şekilde ayrıştırılır ve doğrulanır, ancak bunların hiçbiri bu sürümün render motoru tarafından henüz desteklenmiyor: taşma davranışı henüz yapılandırılamıyor ve render yalnızca LTR/Western şeklindedir. İkisi de üst akış yol haritasında henüz uygulanmamış olarak izleniyor.

İşaretleme DSL

Aynı öğe ağacı düz metin olarak yazılabilir ve doğrudan Generate()‘a iletilebilir.

from omr.api import OmrEngine

markup = ["?choicebox=Rate it", "(1) Poor (2) Fair (3) Good", "&choicebox"]
engine = OmrEngine()
result = engine.Generate(markup)

İpuçları ve En İyi Uygulamalar

  • Ortak varsayılanları GlobalPageSettings üzerinde bir kez ayarlayın, her öğede tekrarlamak yerine.
  • Hızlı yineleme için markup DSL’yi kullanın; programatik üretim için kod-öncelikli ağaca geçin.
  • CompositeGridConfig.ExtraRow, ColumnsCount‘i değiştirmeden özel sembollerin ön satırını ekler.

Yaygın Sorunlar

SorunNedenÇözüm
İçerik, Overflow ayarlı olsa bile kırpılmıyorBu sürümün render motoru henüz Overflow/LongWordHandling değerine saygı göstermiyorHenüz mevcut değil — üst akış yol haritasında izleniyor
SaveAsPdf(), NotImplementedError hatasını fırlatırPDF dışa aktarımı bu sürümde uygulanmadıPNG çıktısı için Save() kullanın

FAQ

Markup DSL ile kod-öncelikli yapılandırmaları aynı şablonda karıştırabilir miyim?

İkisi de aynı TemplateConfig ağacını oluşturmanın alternatif yollarıdır; bu sürümün Generate()‘i bir markup kaynağını ya da bir TemplateConfig örneğini kabul eder, tek bir çağrıda karışımı değil.

Çok sayfalı şablonlar nasıl çalışır?

TemplateConfig.Children birden fazla PageConfig nesnesi tutar; GenerationResult.MultipageTemplateImages sayfa başına bir görüntü döndürür.


API Reference Özeti

Sınıf/YöntemAçıklama
TemplateConfigBelge kökü, PageConfig sayfalarını içerir
PageConfigBir fiziksel sayfa
ChoiceBoxConfig / CheckBoxConfig / GridConfig / CompositeGridConfig / AnswerSheetConfigSoru öğesi yapılandırmaları
BlockConfig / ContainerConfig / PositionedBlockConfigDüzen kapsayıcıları
GlobalPageSettingsBelge genelindeki varsayılanlar

Ayrıca Bakınız

 Türkçe