2012-08-14 12 views
5

मुझे कुछ विशेष slovak वर्णों (उदाहरण के लिए č, ň और ť) में परेशानी हो रही है। वे itextsharp जेनरेट पीडीएफ में गायब हो रहे हैं।iTextSharp और विशेष वर्ण (slovak graphemes)

जो मैं ढूंढने में सक्षम हूं, इस समस्या को मेरे BaseFont के एन्कोडिंग के साथ करना है। वर्तमान में मैं इस का उपयोग कर रहा:

BaseFont.CreateFont(BaseFont.HELVETICA, iTextSharp.text.pdf.BaseFont.CP1250, BaseFont.NOT_EMBEDDED) 

किसी ने सुझाव दिया है कि यह काम करना चाहिए:

BaseFont.CreateFont(BaseFont.HELVETICA, iTextSharp.text.pdf.BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED) 

लेकिन यह इस अपवाद त्रुटि फेंकता है:

System.ArgumentException was caught 
Message='Identity-H' is not a supported encoding name. 
Parameter name: name 
ParamName=name 
Source=mscorlib 

कोई भी इस के लिए एक संभावित कारण और समाधान पता ?

+0

डाउनवोट क्यों? – Muleskinner

उत्तर

12

समस्या यहाँ है:

BaseFont.CreateFont(BaseFont.HELVETICA ... 

BaseFont.HELVETICA एक standard type 1 font है और अपने slovak पात्रों के लिए इस्तेमाल नहीं किया जा सकता है। आपको सही ग्लिफ के साथ फ़ॉन्ट का उपयोग करने की आवश्यकता है:

string FONT = "c:/windows/fonts/arialbd.ttf"; 
using (Document document = new Document()) { 
    PdfWriter.GetInstance(document, STREAM); 
    document.Open(); 
    BaseFont bf = BaseFont.CreateFont(
    FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED 
); 
    document.Add(new Paragraph("č, ň and ť", new Font(bf, 12))); 
} 
संबंधित मुद्दे