আমি একটি উত্তরাধিকারী অ্যাপ্লিকেশনটি মাত্র দুর্ব্যবহার করা শুরু করেছি, যে কোনও কারণেই আমি নিশ্চিত নই। এটি গুচ্ছ এইচটিএমএল তৈরি করে যা অ্যাক্টিভপিডিএফ দ্বারা পিডিএফ প্রতিবেদনে রূপান্তরিত হয়।
প্রক্রিয়াটি এইভাবে কাজ করে:
- প্রতিস্থাপনের জন্য টোকেন সহ একটি ডিবি থেকে একটি HTML টেমপ্লেটটি টানুন (যেমন "~ CompanyName ~", "~ গ্রাহক নাম ~", ইত্যাদি)
- টোকেনগুলি বাস্তব ডেটা দিয়ে প্রতিস্থাপন করুন
- একটি সহজ রেইগেক্স ফাংশন সহ এইচটিএমএলকে পরিপাটি করে যে বৈশিষ্ট্য এইচটিএমএল ট্যাগ বৈশিষ্ট্য মানগুলি বিন্যাস করে (কোটেশন চিহ্নগুলি ইত্যাদি নিশ্চিত করে যেহেতু অ্যাক্টিভপিডিএফ এর রেন্ডারিং ইঞ্জিনটি বৈশিষ্ট্যের মানগুলির চারপাশে একক উদ্ধৃতি ব্যতীত অন্য কিছুকে ঘৃণা করে)
- এইচটিএমএল একটি ওয়েব পরিষেবাতে প্রেরণ করুন যা পিডিএফ তৈরি করে।
এই কোথাও কোথাও, এইচটিএমএল টেমপ্লেট (
গুলি) থেকে অ-ব্রেকিং স্পেসগুলি আইএসও -8859-1 হিসাবে এনকোডিং করছে যাতে ব্রাউজারে (ফায়ারফক্স) নথিটি দেখার সময় তারা "Â" অক্ষর হিসাবে ভুলভাবে প্রদর্শিত হয়। অ্যাক্টিভপিডিএফ এই নন-ইউটিএফ 8 অক্ষরের উপরে উপস্থিত রয়েছে।
আমার প্রশ্ন: যেহেতু আমি জানি না যে সমস্যাটি কোথা থেকে এসেছে এবং এটি তদন্ত করার সময় নেই, তাই খারাপ চরিত্রগুলি পুনরায় এনকোড করার বা সন্ধান এবং প্রতিস্থাপনের সহজ উপায় কি? আমি এই ছোট্ট ফাংশনটির মাধ্যমে এটি প্রেরণের চেষ্টা করেছি আমি একসাথে ছুঁড়ে ফেলেছি, তবে এটি সমস্তকে গাবলডেগুকে পরিণত করে কিছু পরিবর্তন করে না।
Private Shared Function ConvertToUTF8(ByVal html As String) As String
Dim isoEncoding As Encoding = Encoding.GetEncoding("iso-8859-1")
Dim source As Byte() = isoEncoding.GetBytes(html)
Return Encoding.UTF8.GetString(Encoding.Convert(isoEncoding, Encoding.UTF8, source))
End Function
কোন ধারনা?
সম্পাদনা করুন:
আমি আপাতত এটি দিয়ে যাচ্ছি, যদিও এটি ভাল সমাধানের মতো মনে হয় না:
Private Shared Function ReplaceNonASCIIChars(ByVal html As String) As String
Return Regex.Replace(html, "[^\u0000-\u007F]", " ")
End Function