Troubleshooting

Troubleshooting

FontSource, DataSource och PdfPlugin kastar NotImplementedError när de instansieras direkt

FontSource, DataSource och PdfPlugin är abstrakta basklasser. Var och en deklarerar en hook-metod som basklassen avsiktligt kastar NotImplementedError för, och förväntar sig att en konkret subklass åsidosätter:

BasisklassAbstrakt krokAnvänd en av dessa konkreta underklasser istället
FontSourceget_font_definitions()FileFontSource, FolderFontSource, MemoryFontSource, SystemFontSource
DataSourceread_bytes() / write_bytes()FileDataSource, StreamDataSource, ByteArrayDataSource
PdfPluginprocess()Merger, Optimizer, Splitter, TextExtractor

Om du ser NotImplementedError kastas från någon av dessa tre basklasser, är lösningen nästan alltid att byta in den matchande konkreta klassen. För typsnittsupptäckt, registrera en konkret källa med FontRepository i stället för att använda FontSource direkt:

import aspose_pdf

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

Samma mönster gäller för low-code-plugins — bygg en PluginOptions-subklass med konkreta DataSource in-/utdata och kör den genom en konkret plugin, inte PdfPlugin själv:

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() kastar NotImplementedError på en naken Shading instans

Shading — basklassen för färgprovtagning i avgränsade regioner som används av PDF-skuggmönster — implementerar color_at() och pattern_color_at() genom att delegera till en intern _color_at()-hook som saknar standardimplementation. Vid normal användning konstruerar du aldrig Shading själv: bibliotekets egen PDF-parser bygger rätt interna subklass för varje stödd ShadingType när den stöter på en skuggresurs, och returnerar None för skuggtyper den inte känner igen i stället för att falla tillbaka till basklassen. NotImplementedError är endast nåbar om applikationskod instansierar Shading direkt och anropar color_at() eller pattern_color_at() utan att subklassa den för att tillhandahålla en riktig _color_at()-implementation.

Se även

 Svenska