Troubleshooting
FontSource, DataSource, ו-PdfPlugin מעלים NotImplementedError כאשר הם נוצרו ישירות
FontSource, DataSource, ו-PdfPlugin הן מחלקות בסיס מופשטות. כל אחת מצהירה על מתודת חיבור אחת שהמימוש הבסיסי מעלה NotImplementedError במכוון, וצופה בתת-מחלקה קונקרטית שתעקוף אותה:
| מחלקה בסיסית | הוק אבסטרקטי | השתמש באחת מתתי-המחלקות הקונקרטיות האלו במקום |
|---|---|---|
FontSource | get_font_definitions() | FileFontSource, FolderFontSource, MemoryFontSource, SystemFontSource |
DataSource | read_bytes() / write_bytes() | FileDataSource, StreamDataSource, ByteArrayDataSource |
PdfPlugin | process() | Merger, Optimizer, Splitter, TextExtractor |
אם אתה רואה NotImplementedError נזרק מאחת משלוש מחלקות הבסיס האלה, הפתרון הוא כמעט תמיד להחליף בתת-מחלקה הקונקרטית המתאימה. לגילוי גופנים, רשום מקור קונקרטי עם FontRepository במקום להשתמש ב-FontSource ישירות:
import aspose_pdf
aspose_pdf.FontRepository.add_source(
aspose_pdf.FolderFontSource("./fonts", scan_subdirectories=True)
)אותו דפוס חל על תוספי low-code — בנה תת-מחלקה של PluginOptions עם קלט/פלט DataSource קונקרטיים והפעל אותה דרך תוסף קונקרטי, ולא דרך PdfPlugin עצמו:
import aspose_pdf
options = aspose_pdf.MergeOptions()
options.add_input(aspose_pdf.FileDataSource("part1.pdf"))
options.add_input(aspose_pdf.FileDataSource("part2.pdf"))
options.add_output(aspose_pdf.FileDataSource("merged.pdf"))
aspose_pdf.Merger().process(options)Shading.color_at() מעלה NotImplementedError על מופע Shading חשוף
Shading — מחלקת הבסיס לדגימה של צבע באיזור מוגבל המשמשת בתבניות הצללה של PDF — מממשת את color_at() ו-pattern_color_at() על-ידי העברה למתודת חיבור פנימית של _color_at() שאין לה גוף ברירת מחדל. בשימוש רגיל לעולם לא אתה בונה את Shading בעצמך: מפענח ה-PDF של הספרייה בונה את תת-המחלקה הפנימית המתאימה לכל ShadingType נתמך כאשר הוא נתקל במשאב הצללה, ומחזיר None לסוגי הצללה שהוא אינו מזהה במקום לחזור למחלקת הבסיס. ה-NotImplementedError נגיש רק אם קוד היישום מייצר מופע של Shading ישירות וקורא ל-color_at() או ל-pattern_color_at() ללא יצירת תת-מחלקה שתספק מימוש _color_at() אמיתי.