Troubleshooting

Troubleshooting

FontSource, DataSource en PdfPlugin veroorzaken NotImplementedError wanneer ze rechtstreeks worden geïnstantieerd

FontSource, DataSource en PdfPlugin zijn abstracte basisklassen. Elke declareert één hook-methode die de basisimplementatie NotImplementedError veroorzaakt per ontwerp, en verwacht dat een concrete subklasse deze overschrijft:

BasisklasseAbstracte hookGebruik één van deze concrete subklassen in plaats daarvan
FontSourceget_font_definitions()FileFontSource, FolderFontSource, MemoryFontSource, SystemFontSource
DataSourceread_bytes() / write_bytes()FileDataSource, StreamDataSource, ByteArrayDataSource
PdfPluginprocess()Merger, Optimizer, Splitter, TextExtractor

Als je NotImplementedError ziet opkomen vanuit een van deze drie basisklassen, is de oplossing bijna altijd om de overeenkomstige concrete klasse te gebruiken. Voor fontdetectie registreer je een concrete bron met FontRepository in plaats van FontSource rechtstreeks te gebruiken:

import aspose_pdf

aspose_pdf.FontRepository.add_source(
    aspose_pdf.FolderFontSource("./fonts", scan_subdirectories=True)
)

Hetzelfde patroon geldt voor low-code-plugins — bouw een PluginOptions subklasse met concrete DataSource invoer/uitvoer en voer deze uit via een concrete plugin, niet PdfPlugin zelf:

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() veroorzaakt NotImplementedError op een kale Shading instantie

Shading — de basisklasse voor kleurmonsters binnen een begrensd gebied die worden gebruikt door PDF-schaduwpatronen — implementeert color_at() en pattern_color_at() door te delegeren aan een interne _color_at() hook die geen standaardimplementatie heeft. In normaal gebruik construeer je Shading nooit zelf: de PDF-parser van de bibliotheek bouwt de juiste interne subklasse voor elke ondersteunde ShadingType wanneer hij een schaduwhulpbron tegenkomt, en retourneert None voor schaduwtypes die hij niet herkent in plaats van terug te vallen op de basisklasse. De NotImplementedError is alleen bereikbaar als toepassingscode Shading rechtstreeks instantiateert en color_at() of pattern_color_at() aanroept zonder een subklasse te maken die een echte _color_at()-implementatie levert.

Zie ook

 Nederlands