Troubleshooting

Troubleshooting

FontSource, DataSource και PdfPlugin προκαλούν NotImplementedError όταν δημιουργούνται άμεσα

FontSource, DataSource και PdfPlugin είναι αφηρημένες βασικές κλάσεις. Κάθε μια δηλώνει μία μέθοδο hook που η βασική υλοποίηση προκαλεί NotImplementedError επίτηδες, και αναμένει μια συγκεκριμένη υποκλάση να την υπερκαλύψει:

Βασική κλάσηΑφηρημένο hookΧρησιμοποιήστε μία από αυτές τις συγκεκριμένες υποκλάσεις αντί αυτού
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() παραπέμποντας σε ένα εσωτερικό hook _color_at() που δεν έχει προεπιλεγμένο σώμα. Σε κανονική χρήση δεν δημιουργείτε ποτέ το Shading μόνοι σας: ο δικός της PDF parser της βιβλιοθήκης δημιουργεί τη σωστή εσωτερική υποκλάση για κάθε υποστηριζόμενο ShadingType όταν συναντά έναν πόρο σκίασης, και επιστρέφει None για τύπους σκίασης που δεν αναγνωρίζει αντί να επανέρχεται στην βασική κλάση. Το NotImplementedError είναι προσβάσιμο μόνο εάν ο κώδικας εφαρμογής δημιουργεί το Shading άμεσα και καλεί τα color_at() ή pattern_color_at() χωρίς να το υποκλάσει ώστε να παρέχει μια πραγματική υλοποίηση _color_at().

Δείτε επίσης

 Ελληνικά