Troubleshooting

Troubleshooting

FontSource, DataSource, ו-PdfPlugin מעלים NotImplementedError כאשר הם נוצרו ישירות

FontSource, DataSource, ו-PdfPlugin הן מחלקות בסיס מופשטות. כל אחת מצהירה על מתודת חיבור אחת שהמימוש הבסיסי מעלה NotImplementedError במכוון, וצופה בתת-מחלקה קונקרטית שתעקוף אותה:

מחלקה בסיסיתהוק אבסטרקטיהשתמש באחת מתתי-המחלקות הקונקרטיות האלו במקום
FontSourceget_font_definitions()FileFontSource, FolderFontSource, MemoryFontSource, SystemFontSource
DataSourceread_bytes() / write_bytes()FileDataSource, StreamDataSource, ByteArrayDataSource
PdfPluginprocess()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() אמיתי.

ראה גם

 עברית