PDA

View Full Version : حرفه ای: مشکل با itext



rzamani
دوشنبه 19 تیر 1402, 10:29 صبح
سلام و وقت بخیر دوستان
من یک تکه کد دارم که هر چیزی در محیط گزارش را به pdf تبدیل میکنه با استفاده از itextdotnet.dll
جالب اینجاست که در ویندوز 7 کار میکنه و مشکلی ندارم
ولی در ویندوز 10 ، موقع تبدیل خطا میده :

The type initializer for 'com.lowagie.text.pdf.BaseFont' threw an exception

جزئیات هم اینه:
System.TypeInitializationException was unhandled by user code
HResult=-2146233036
Message=The type initializer for 'com.lowagie.text.pdf.BaseFont' threw an exception.
Source=iTextdotNET
TypeName=com.lowagie.text.pdf.BaseFont

Message=Unable to cast object of type 'System.InvalidCastException' to type 'java.lang.Throwable'.
Source=vjslib
StackTrace:
at java.lang.Throwable.__mapCorException(Exception o)
at java.lang.Throwable.<exceptFilter>(Object o)
at com.lowagie.text.pdf.BaseFont..cctor()
InnerException:


انگار که اصلا itext لود نمیشه .
میشه لطفا راهنمایی کنید

پرستو پارسایی
سه شنبه 20 تیر 1402, 11:26 صبح
این خطا ممکن است به دلیل تفاوت‌هایی در نحوه نصب ویندوز 7 و 10 باشد، اما بیشتر به دلیل نسخه‌های مختلف itextdotnet.dll در هر دو سیستم باشد. احتمالاً شما نسخه ای از itextdotnet.dll را در ویندوز 7 استفاده کرده اید که با ویندوز 10 سازگار نیست.

برای رفع این مشکل، ابتدا باید اطمینان حاصل کنید که شما از آخرین نسخه itextdotnet.dll استفاده می کنید که با ویندوز 10 سازگار است. بعد از دانلود و نصب نسخه جدید، باید کد خود را با استفاده از نسخه جدید itextdotnet.dll کامپایل کنید.

همچنین، در صورتی که مشکل شما همچنان ادامه دارد، می توانید از نسخه جدیدتری از Java Runtime Environment (JRE) استفاده کنید و مجدداً تلاش کنید. در صورت نیاز، می توانید با استفاده از ابزارهایی مانند Dependency Walker، به دنبال هرگونه وابستگی‌های ناشناخته و نسخه‌های مناسب از itextdotnet.dll برای ویندوز 10 بگردید.
در صورت فعال نبودن Framwork 3.5 در ویندوز ، آنرا فعال کنید
برای فعال‌سازی .NET Framework 3.5 در ویندوز 10، می‌توانید از راه‌های زیر استفاده کنید:


از طریق تنظیمات ویندوز:
روی دکمه شروع کلیک کنید و در باکس جستجو CMD را تایپ کنید.
روی CMD کلیک راست کرده و گزینه Run as administrator را انتخاب کنید.
در پنجره دستورالعمل CMD، دستور زیر را وارد کنید و Enter را بزنید:

dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:<drive>:\sources\sxs /LimitAccess

در دستور بالا، <drive> را با حرف درایو دی وی دی ویندوز 10 خود جایگزین کنید.
پس از اجرای دستور، شما باید صبر کنید تا فرآیند نصب به پایان برسد.


از طریق Control Panel:
روی دکمه شروع کلیک کنید و Control Panel را جستجو کنید.
در Control Panel، بر روی گزینه Programs رفته و سپس بر روی Turn Windows features on or off کلیک کنید.
در پنجره ویژگی‌های ویندوز، گزینه .NET Framework 3.5 (includes .NET 2.0 and 3.0) را تیک بزنید و OK را بزنید.
شما باید صبر کنید تا فرآیند نصب به پایان برسد.
در هر دو روش بالا، شما باید به عنوان مدیر سیستم وارد شوید تا بتوانید .NET Framework 3.5 را فعال کنید.