Generation

Generation

Lapisan generasi (omr.generation) membangun sebuah templat — sebuah pohon konfigurasi elemen — dan merendernya menjadi gambar halaman plus deskriptor .omr melalui OmrEngine.Generate().


Pohon Templat

TemplateConfig adalah akar dokumen, berisi satu atau lebih objek PageConfig. Setiap elemen di bawah sebuah halaman adalah subkelas dari BaseConfig, membawa sebuah Name dan sebuah diskriminator Type (ConfigType).

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]

Elemen Pertanyaan

  • ChoiceBoxConfig — sebuah pertanyaan dengan sekumpulan gelembung opsi tetap (ChoiceBoxAnswerConfig), mendukung multi-select dan validasi per-pertanyaan.
  • AnswerSheetConfig — sebuah matriks gelembung jawaban bernomor untuk lembar bergaya ujian.
  • CheckBoxConfig — sebuah grup berlabel dari kotak kosong yang menerima sembarang tanda, dengan ambang pengisian yang dapat disetel.
  • GridConfig / CompositeGridConfig — matriks digit atau simbol khusus yang digabung menjadi satu nilai.
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

Pengaturan Seluruh Halaman

GlobalPageSettings menetapkan default seluruh dokumen (ukuran kertas, orientasi, font, ukuran gelembung) yang dapat ditimpa oleh elemen individual. PaperSize dan Orientation dapat diimpor langsung dari omr.generation.

from omr.generation import GlobalPageSettings, Orientation, PaperSize

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

Tata Letak, Overflow, dan Sistem Penulisan

BlockConfig adalah kotak berbingkai dan berpadding; ContainerConfig menyusun blok anak menjadi kolom atau footer; PositionedBlockConfig menempatkan anak pada koordinat absolut. LongWordHandling, kelas turunan OverflowAction (Clip, NoClip, Wrap), serta sistem penulisan Arabic/Hebrew/Persian/Urdu/Bengali semuanya dapat mengurai dan memvalidasi dengan benar untuk kesetiaan API dengan permukaan Aspose.OMR, namun belum ada yang dihormati oleh mesin render rilis ini: perilaku overflow belum dapat dikonfigurasi, dan rendering hanya LTR/Barat. Keduanya tercatat di roadmap hulu sebagai belum diimplementasikan.

DSL Markup

Pohon elemen yang sama dapat ditulis sebagai teks biasa dan diteruskan langsung ke Generate().

from omr.api import OmrEngine

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

Tips dan Praktik Terbaik

  • Tetapkan nilai default bersama sekali pada GlobalPageSettings daripada mengulanginya pada setiap elemen.
  • Gunakan markup DSL untuk iterasi cepat; beralih ke pohon code-first untuk pembuatan secara programatik.
  • CompositeGridConfig.ExtraRow menambahkan baris terdepan simbol khusus tanpa mengubah ColumnsCount.

Masalah Umum

MasalahPenyebabPerbaikan
Konten tidak terpotong meskipun Overflow diaturMesin render rilis ini belum menghormati Overflow/LongWordHandlingBelum tersedia — dilacak pada roadmap upstream
SaveAsPdf() memunculkan NotImplementedErrorEkspor PDF belum diimplementasikan dalam rilis iniGunakan Save() untuk output PNG

FAQ

Apakah saya dapat mencampur markup DSL dan konfigurasi code-first dalam templat yang sama?

Keduanya adalah cara alternatif untuk membangun pohon TemplateConfig yang sama; Generate() pada rilis ini menerima sumber markup atau instance TemplateConfig, bukan campuran dalam satu panggilan.

Bagaimana cara kerja template multi-halaman?

TemplateConfig.Children menyimpan banyak objek PageConfig; GenerationResult.MultipageTemplateImages mengembalikan satu gambar per halaman.


API Reference Ringkasan

Kelas/MetodeDeskripsi
TemplateConfigRoot dokumen yang berisi halaman PageConfig
PageConfigSatu halaman fisik
ChoiceBoxConfig / CheckBoxConfig / GridConfig / CompositeGridConfig / AnswerSheetConfigKonfigurasi elemen pertanyaan
BlockConfig / ContainerConfig / PositionedBlockConfigKontainer tata letak
GlobalPageSettingsDefault seluruh dokumen

Lihat Juga

 Bahasa Indonesia