Cara Bekerja dengan Generasi di Python

Cara Bekerja dengan Generasi di Python

Aspose.OMR FOSS untuk Python membangun formulir OMR dari pohon konfigurasi elemen yang berakar di TemplateConfig, kemudian merendernya menjadi gambar halaman dan deskriptor .omr dengan OmrEngine.Generate(). Panduan ini menjelaskan cara membuat templat lembar jawaban sederhana dan menghasilkannya.

Panduan Langkah demi Langkah

Langkah 1: Instal Paket

git clone https://github.com/aspose-omr-foss/Aspose.OMR-FOSS-for-Python.git
cd Aspose.OMR-FOSS-for-Python
pip install -e .
python -c "import omr; print('Aspose.OMR FOSS for Python is ready.')"

Langkah 2: Impor Kelas yang Diperlukan

from omr.api import OmrEngine
from omr.generation.config import TemplateConfig
from omr.generation.config.elements.parents import PageConfig
from omr.generation.config.elements import AnswerSheetConfig

Langkah 3: Bangun Pohon Template

Buat root TemplateConfig, PageConfig untuk halaman tunggal, dan AnswerSheetConfig untuk matriks jawaban bernomor 20 pertanyaan (4 gelembung opsi per pertanyaan).

tpl = TemplateConfig()
tpl.Name = "quiz"
page = PageConfig()
sheet = AnswerSheetConfig()
sheet.Name = "answers"
sheet.AnswersCount = 4    # bubbles per question (e.g. A-D)
sheet.ElementsCount = 20  # number of questions
page.Children = [sheet]
tpl.Children = [page]

Langkah 4: Hasilkan dan Simpan

engine = OmrEngine()
gen = engine.Generate(tpl)
gen.Save("out", "quiz")   # -> out/quiz.png + out/quiz.omr

Masalah Umum dan Solusinya

Halaman yang saya hasilkan terlihat kosong. Periksa bahwa setiap elemen memang ditambahkan ke induk Children daftar — sebuah elemen yang dibuat tetapi tidak pernah ditambahkan ke halaman (atau kontainer) Children tidak pernah dirender.

Saya membutuhkan PDF alih-alih PNG. Tidak tersedia dalam rilis ini — GenerationResult.SaveAsPdf() raises NotImplementedError. Gunakan output PNG dari Save() dan konversi secara eksternal jika PDF diperlukan.

Saya mengatur Overflow dan tidak ada yang berubah. Mesin render rilis ini belum menghormati Overflow/LongWordHandling — enum diparsing dan divalidasi dengan benar, tetapi perilaku overflow belum dapat dikonfigurasi. Hal ini dilacak dalam roadmap upstream.

Pertanyaan yang Sering Diajukan

Bisakah saya membuat templat yang sama tanpa objek Python?

Ya — DSL markup membangun pohon elemen yang sama dari teks biasa, yang diteruskan langsung ke OmrEngine.Generate().

Bagaimana cara saya menghasilkan templat multi-halaman?

Tambahkan lebih dari satu PageConfig ke TemplateConfig.Children; GenerationResult.MultipageTemplateImages mengembalikan satu gambar per halaman.

Apakah mesin menyimpan status antara panggilan Generate()?

Tidak — OmrEngine tidak memiliki status; setiap panggilan bersifat independen.

Lihat Juga

 Bahasa Indonesia