Cum să lucraţi cu Generation în Python

Cum să lucraţi cu Generation în Python

Aspose.OMR FOSS pentru Python construiește un formular OMR dintr-un arbore de configurații de elemente cu rădăcina la TemplateConfig, apoi îl redă ca imagine de pagină și descriptor .omr cu OmrEngine.Generate(). Acest ghid parcurge construirea unui șablon simplu de fișă de răspuns și generarea acestuia.

Ghid pas cu pas

Pasul 1: Instalați pachetul

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.')"

Pasul 2: Importați clasele necesare

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

Pasul 3: Construiți arborele de șablon

Creează un TemplateConfig rădăcină, un PageConfig pentru pagina unică și un AnswerSheetConfig pentru o matrice de răspunsuri numerotată cu 20 de întrebări (4 bule de opțiune per întrebare).

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]

Pasul 4: Generează și Salvează

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

Probleme comune și soluții

Pagina mea generată pare goală. Verifică că fiecare element este într-adevăr adăugat la părintele Children listă — un element construit, dar niciodată adăugat la pagina (sau containerul) Children nu este niciodată redat.

Am nevoie de un PDF în loc de un PNG. Nu este disponibil în această versiune — GenerationResult.SaveAsPdf() raises NotImplementedError. Folosește ieșirea PNG de la Save() și convertește extern dacă este necesar un PDF.

Am setat Overflow și nimic nu s-a schimbat. Motorul de redare al acestei versiuni nu respectă încă Overflow/LongWordHandling — enumerările sunt analizate și validate corect, dar comportamentul de overflow nu este încă configurabil. Acest lucru este urmărit în roadmap-ul upstream.

Întrebări frecvente

Pot să construiesc același șablon fără obiecte Python?

Da — DSL-ul de markup construiește același arbore de elemente din text simplu, transmis direct către OmrEngine.Generate().

Cum pot genera un șablon cu pagini multiple?

Adaugă mai mult de un PageConfig în TemplateConfig.Children; GenerationResult.MultipageTemplateImages returnează o imagine pe pagină.

Motorul păstrează starea între apelurile Generate()?

Nu — OmrEngine este fără stare; fiecare apel este independent.

Vezi și:

 Română