Hoe te werken met Generation in Python

Hoe te werken met Generation in Python

Aspose.OMR FOSS voor Python bouwt een OMR-formulier uit een boom van elementconfiguraties met als wortel TemplateConfig, rendert het vervolgens naar een pagina-afbeelding en een .omr descriptor met OmrEngine.Generate(). Deze gids loopt u stap voor stap door het bouwen van een eenvoudige antwoordblad-sjabloon en het genereren ervan.

Stapsgewijze handleiding

Stap 1: Installeer het pakket

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

Stap 2: Importeer vereiste klassen

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

Stap 3: Bouw de sjabloonboom

Maak een TemplateConfig root, een PageConfig voor de enkele pagina, en een AnswerSheetConfig voor een 20-vraag genummerde antwoordmatrix (4 optiebubbels per vraag).

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]

Stap 4: Genereren en Opslaan

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

Veelvoorkomende problemen en oplossingen

Mijn gegenereerde pagina ziet er leeg uit. Controleer of elk element daadwerkelijk aan de ouder is toegevoegd Children lijst — een element dat is geconstrueerd maar nooit aan een pagina (of container) is toegevoegd Children wordt nooit gerenderd.

Ik heb een PDF nodig in plaats van een PNG. Niet beschikbaar in deze release — GenerationResult.SaveAsPdf() raises NotImplementedError. Gebruik de PNG-uitvoer van Save() en converteer extern als een PDF vereist is.

Ik stel Overflow en er veranderde niets. De renderengine van deze release ondersteunt nog niet Overflow/LongWordHandling — de enums worden correct geparseerd en gevalideerd, maar overflow-gedrag is nog niet configureerbaar. Dit wordt bijgehouden op de upstream-roadmap.

Veelgestelde vragen

Kan ik dezelfde template bouwen zonder Python objecten?

Ja — de markup-DSL bouwt dezelfde elementboom vanuit platte tekst, rechtstreeks doorgegeven aan OmrEngine.Generate().

Hoe genereer ik een meerpagina-template?

Voeg meer dan één PageConfig toe aan TemplateConfig.Children; GenerationResult.MultipageTemplateImages retourneert één afbeelding per pagina.

Behoudt de engine de status tussen Generate()-oproepen?

Nee — OmrEngine is stateless; elke oproep is onafhankelijk.

Zie ook

 Nederlands