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 AnswerSheetConfigStap 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.omrVeelvoorkomende 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.