วิธีทำงานกับ Generation ใน Python
Aspose.OMR FOSS สำหรับ Python สร้างแบบฟอร์ม OMR จากต้นไม้ของการกำหนดค่าองค์ประกอบที่มีรากอยู่ที่ TemplateConfig, แล้วเรนเดอร์เป็นภาพหน้าและ descriptor .omr ด้วย OmrEngine.Generate(). คู่มือนี้จะพาคุณผ่านการสร้างเทมเพลตแผ่นคำตอบอย่างง่ายและการสร้างมัน.
คู่มือแบบทีละขั้นตอน
ขั้นตอนที่ 1: ติดตั้งแพ็กเกจ
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.')"ขั้นตอนที่ 2: นำเข้าคลาสที่จำเป็น
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ขั้นตอนที่ 3: สร้างต้นไม้เทมเพลต
สร้างราก TemplateConfig, PageConfig สำหรับหน้าเดียว, และ AnswerSheetConfig สำหรับเมทริกซ์คำตอบแบบมีหมายเลข 20 คำถาม (แต่ละคำถามมี 4 ฟองตัวเลือก).
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]ขั้นตอนที่ 4: สร้างและบันทึก
engine = OmrEngine()
gen = engine.Generate(tpl)
gen.Save("out", "quiz") # -> out/quiz.png + out/quiz.omrปัญหาทั่วไปและวิธีแก้
หน้าที่สร้างขึ้นของฉันดูว่างเปล่า. ตรวจสอบว่าแต่ละองค์ประกอบถูกเพิ่มเข้าไปในพาเรนท์จริงหรือไม่ Children รายการ — องค์ประกอบที่ถูกสร้างขึ้นแต่ไม่เคยถูกต่อเติมเข้าไปในหน้าของ (หรือคอนเทนเนอร์ของ) Children จะไม่ถูกแสดงผลเลย.
ฉันต้องการ PDF แทน PNG. ไม่มีให้ในรุ่นนี้ — GenerationResult.SaveAsPdf() raises NotImplementedError. ใช้ผลลัพธ์ PNG จาก Save() และแปลงภายนอกหากต้องการ PDF.
ฉันตั้งค่า Overflow และไม่มีอะไรเปลี่ยนแปลง. เอนจินการเรนเดอร์ของรุ่นนี้ยังไม่รองรับ Overflow/LongWordHandling — enums แยกวิเคราะห์และตรวจสอบความถูกต้องได้อย่างถูกต้อง, แต่พฤติกรรม overflow ยังไม่สามารถกำหนดค่าได้. สิ่งนี้ถูกติดตามในแผนงานต้นทาง.
คำถามที่พบบ่อย
ฉันสามารถสร้างเทมเพลตเดียวกันโดยไม่ใช้วัตถุ Python ได้หรือไม่?
ใช่ — DSL มาร์คอัปสร้างโครงสร้างต้นไม้ขององค์ประกอบเดียวกันจากข้อความธรรมดา ซึ่งถูกส่งตรงไปยัง OmrEngine.Generate().
ฉันจะสร้างเทมเพลตหลายหน้าได้อย่างไร?
เพิ่ม PageConfig มากกว่าหนึ่งรายการลงใน TemplateConfig.Children; GenerationResult.MultipageTemplateImages จะคืนค่าภาพหนึ่งภาพต่อหน้า.
เอนจินจะเก็บสถานะระหว่างการเรียก Generate() หรือไม่?
ไม่ — OmrEngine ไม่มีสถานะ; การเรียกแต่ละครั้งเป็นอิสระกัน.