2012-12-13 4 views
5

का उपयोग करते समय फ़ॉन्ट रंग और आकार को बदलना मैं एक पीडीएफ लिखने के लिए iText5 (जावा) का उपयोग कर रहा हूं जिसमें चीनी वर्ण हो सकते हैं। इसलिए मैं स्ट्रिंग को संसाधित करने के लिए FontSelector का उपयोग कर रहा हूं और यह ठीक काम करता है।FontSelector

अब समस्या यह है कि मैं Font Color = Gray और size = 25 साथ, str1 डायन Font Color = Blue और size = 10 लिखने के लिए जबकि str2 जरूरत है अगर वहाँ 2 तार

String str1 = "Hello Test1"; 
String str2 = "Hello Test2"; 

हो रहा है।

मैं यह समझने में सक्षम नहीं हूं कि FontSelector का उपयोग करके इसे कैसे प्राप्त किया जाए।

किसी भी मदद की सराहना की जाती है।

उत्तर

8

यह आसान है।

FontSelector selector = new FontSelector(); 
Font f1 = FontFactory.getFont(FontFactory.TIMES_ROMAN, 12); 
f1.setColor(BaseColor.BLUE); 
Font f2 = FontFactory.getFont("MSung-Light", 
     "UniCNS-UCS2-H", BaseFont.NOT_EMBEDDED); 
f2.setColor(BaseColor.RED); 
selector.addFont(f1); 
selector.addFont(f2); 
Phrase ph = selector.process(TEXT); 

अपने मामले में आप दो FontSelectors की जरूरत है: यहाँ आप एक कोड का टुकड़ा है कि लाल रंग में ब्लू में टाइम्स रोमन पाठ और चीनी पाठ कहते है।

FontSelector selector1 = new FontSelector(); 
Font f1 = FontFactory.getFont(FontFactory.TIMES_ROMAN, 12); 
f1.setColor(BaseColor.BLUE); 
selector1.addFont(f1); 
Phrase ph = selector1.process(str1);//First one 

FontSelector selector2 = new FontSelector(); 
Font f2 = FontFactory.getFont(FontFactory.TIMES_ROMAN, 12); 
f2.setColor(BaseColor.GRAY); 
selector2.addFont(f2); 
Phrase ph = selector2.process(str2);//Second one 
+0

बहुत बढ़िया। धन्यवाद। – Neela

0

आप मेरे मामले में किसी अन्य तरीके से यह कर सकते हैं मैं सारणीबद्ध रिपोर्ट में डेटा के लिए हेडर के लिए 14 और 10 का उपयोग

private Font fHeader; 
    private Font f1; 

    BaseFont bf = BaseFont.createFont(Constants.Settings.ARIAL_FONT, BaseFont.IDENTITY_H, true); 

    f1 = new Font(bf, 10); 
    fHeader= new Font(bf,14); 
    PdfPCell cell = new PdfPCell(); 

//for report header 
    cell = new PdfPCell(new Phrase(reportKingdomData + "\n" + departmentData + " " + username + " \n " + reportHeader + " \n ", fHeader)); 

//and for background color 
cell .setBackgroundColor(new GrayColor(0.40f));//if 0.10f will be closer to black