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)
)

الگوی مشابه برای افزونه‌های کم‌کد نیز صادق است — یک زیرکلاس 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() در یک نمونهٔ خالی Shading، NotImplementedError را برمی‌انگیزد

Shading — کلاس پایه برای نمونه‌برداری رنگ در ناحیهٔ محدود که توسط الگوهای سایه‌دار PDF استفاده می‌شود — color_at() و pattern_color_at() را با واگذاری به یک هوک داخلی _color_at() که بدنهٔ پیش‌فرضی ندارد، پیاده‌سازی می‌کند. در استفادهٔ معمول شما هرگز Shading را خودتان نمی‌سازید: تجزیه‌کنندهٔ PDF کتابخانه، برای هر ShadingType پشتیبانی‌شده، زیرکلاس داخلی مناسب را هنگام مواجهه با منبع سایه‌دار می‌سازد و برای نوع‌های سایه‌داری که شناسایی نمی‌کند، None را برمی‌گرداند به‌جای این‌که به کلاس پایه بازگردد. NotImplementedError فقط زمانی در دسترس است که کد برنامه، Shading را به‌صورت مستقیم نمونه‌سازی کند و بدون زیرکلاس‌سازی برای فراهم کردن پیاده‌سازی واقعی _color_at()، color_at() یا pattern_color_at() را فراخوانی کند.

همچنین ببینید:

 فارسی