Generation ile Python içinde nasıl çalışılır
Aspose.OMR FOSS for Python, TemplateConfig kökünde bulunan öğe yapılandırmaları ağacından bir OMR formu oluşturur, ardından bunu bir sayfa görüntüsü ve .omr tanımlayıcısına OmrEngine.Generate() ile render eder. Bu kılavuz, basit bir cevap kağıdı şablonu oluşturmayı ve bunu üretmeyi adım adım gösterir.
Adım Adım Kılavuz
Adım 1: Paketi Yükleyin
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.')"Adım 2: Gerekli Sınıfları İçe Aktarın
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 AnswerSheetConfigAdım 3: Şablon Ağacını Oluşturun
Bir TemplateConfig kökü, tek sayfa için bir PageConfig ve 20 soruluk numaralı cevap matrisı (her soru için 4 seçenek balonu) için bir AnswerSheetConfig oluşturun.
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]Adım 4: Oluştur ve Kaydet
engine = OmrEngine()
gen = engine.Generate(tpl)
gen.Save("out", "quiz") # -> out/quiz.png + out/quiz.omrYaygın Sorunlar ve Çözümler
Oluşturduğum sayfa boş görünüyor. Her öğenin gerçekten bir ebeveynin içine eklendiğini kontrol edin Children list — bir sayfanın (veya konteynerin) içine hiç eklenmeyen, oluşturulmuş bir öğe Children hiç render edilmez.
PNG yerine bir PDF’ye ihtiyacım var. Bu sürümde mevcut değil — GenerationResult.SaveAsPdf() raises NotImplementedError. PNG çıktısını şuradan kullanın Save() ve bir PDF gerekirse dışarıda dönüştürün.
Ayarladım Overflow ve hiçbir şey değişmedi. Bu sürümün render motoru henüz şunları desteklemiyor Overflow/LongWordHandling — enum’lar doğru bir şekilde ayrıştırılır ve doğrulanır, ancak taşma davranışı henüz yapılandırılabilir değil. Bu, üst akış yol haritasında izleniyor.
Sıkça Sorulan Sorular
Aynı şablonu Python nesneleri olmadan oluşturabilir miyim?
Evet — işaretleme DSL’si, düz metinden aynı öğe ağacını oluşturur ve doğrudan OmrEngine.Generate()‘a iletilir.
Çok sayfalı bir şablonu nasıl oluşturabilirim?
TemplateConfig.Children‘e birden fazla PageConfig ekleyin; GenerationResult.MultipageTemplateImages sayfa başına bir görüntü döndürür.
Motor, Generate() çağrıları arasında durum tutuyor mu?
Hayır — OmrEngine durum içermez; her çağrı bağımsızdır.