Hur man arbetar med Generation i Python

Hur man arbetar med Generation i Python

Aspose.OMR FOSS för Python bygger ett OMR-formulär från ett träd av elementkonfigurationer med roten i TemplateConfig, renderar det sedan till en sidbild och .omr-beskrivning med OmrEngine.Generate(). Denna guide går igenom att bygga en enkel svarspappersmall och generera den.

Steg-för-steg-guide

Steg 1: Installera paketet

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

Steg 2: Importera nödvändiga klasser

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

Steg 3: Bygg mallträdet

Skapa ett TemplateConfig root, ett PageConfig för den enda sidan, och ett AnswerSheetConfig för en 20-frågor numrerad svarsmatris (4 alternativbubblor per fråga).

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]

Steg 4: Generera och spara

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

Vanliga problem och lösningar

Min genererade sida ser tom ut. Kontrollera att varje element faktiskt läggs till i en förälders Children lista — ett element som konstruerats men aldrig bifogats till en sidas (eller en behållares) Children renderas aldrig.

Jag behöver en PDF istället för en PNG. Inte tillgänglig i den här utgåvan — GenerationResult.SaveAsPdf() raises NotImplementedError. Använd PNG-utdata från Save() och konvertera externt om en PDF krävs.

Jag sätter Overflow och inget förändrades. Denna releasens renderingsmotor har ännu inte stöd för Overflow/LongWordHandling — enumen parsas och valideras korrekt, men overflow-beteendet är ännu inte konfigurerbart. Detta spåras i den överordnade färdplanen.

Vanliga frågor

Kan jag bygga samma mall utan Python objekt?

Ja — markup DSL bygger samma elementträd från vanlig text, som skickas direkt till OmrEngine.Generate().

Hur genererar jag en flersidig mall?

Lägg till mer än en PageConfig i TemplateConfig.Children; GenerationResult.MultipageTemplateImages returnerar en bild per sida.

Behåller motorn tillstånd mellan Generate()-anrop?

Nej — OmrEngine är stateless; varje anrop är oberoende.

Se även

 Svenska