Troubleshooting

Troubleshooting

FontSource, DataSource und PdfPlugin werfen NotImplementedError, wenn sie direkt instanziiert werden

FontSource, DataSource und PdfPlugin sind abstrakte Basisklassen. Jede deklariert eine Hook-Methode, für die die Basisimplementierung aus Designgründen NotImplementedError wirft, und erwartet, dass eine konkrete Unterklasse sie überschreibt:

BasisklasseAbstrakter HookVerwenden Sie stattdessen eine dieser konkreten Unterklassen
FontSourceget_font_definitions()FileFontSource, FolderFontSource, MemoryFontSource, SystemFontSource
DataSourceread_bytes() / write_bytes()FileDataSource, StreamDataSource, ByteArrayDataSource
PdfPluginprocess()Merger, Optimizer, Splitter, TextExtractor

Wenn Sie NotImplementedError von einer dieser drei Basisklassen geworfen sehen, besteht die Lösung fast immer darin, die passende konkrete Klasse einzusetzen. Für die Schriftartenerkennung registrieren Sie eine konkrete Quelle bei FontRepository, anstatt FontSource direkt zu verwenden:

import aspose_pdf

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

Das gleiche Muster gilt für Low-Code-Plugins— bauen Sie eine PluginOptions-Unterklasse mit konkreten DataSource-Ein- und -Ausgaben und führen Sie sie durch ein konkretes Plugin, nicht PdfPlugin selbst:

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() wirft NotImplementedError bei einer nackten Shading-Instanz

Shading— die Basisklasse für das Sampling von Farbbereichen mit Begrenzungen, das von PDF-Schattierungsmustern verwendet wird— implementiert color_at() und pattern_color_at(), indem sie an einen internen _color_at()-Hook delegiert, der keinen Standard-Body hat. In der normalen Nutzung konstruieren Sie Shading niemals selbst: Der PDF-Parser der Bibliothek erzeugt die passende interne Unterklasse für jedes unterstützte ShadingType, wenn er eine Schattierungsressource findet, und gibt None für Schattierungstypen zurück, die nicht erkannt werden, anstatt zur Basisklasse zurückzufallen. Der NotImplementedError ist nur erreichbar, wenn Anwendungscode Shading direkt instanziiert und color_at() oder pattern_color_at() aufruft, ohne ihn zu subclassen, um eine echte _color_at()-Implementierung bereitzustellen.

Siehe auch

 Deutsch