2011-02-23 10 views
9

मैं जेपीआर रिपोर्ट में एक पीडीएफ फ़ाइल के रूप में यूक्रेनियन चरित्र प्रदर्शित करने की कोशिश कर रहा हूं। लेकिन यह पीडीएफ प्रारूप में diaplaying नहीं है।यूक्रेन (सिरिलिक) वर्ण जैस्पर रिपोर्ट में प्रदर्शित नहीं होते हैं पीडीएफ

जब मैं HTML, csv..ukranian char जैसे अन्य सभी प्रारूपों को रिपोर्ट निर्यात करता हूं तो प्रदर्शित होता है।

कृपया मेरी मदद करें!

+0

क्या निर्यात के लिए इस्तेमाल किए गए फ़ॉन्ट्स में वर्ण आवश्यक हैं? मुझे यकीन नहीं है कि जैस्पर रिपोर्ट किस विधि का उपयोग करती है, लेकिन पीडीएफ फाइल में आम तौर पर इसे उत्पन्न करने के लिए इस्तेमाल किया जाने वाला फ़ॉन्ट होता है - जिसका अर्थ है कि फ़ॉन्ट को अंतरराष्ट्रीय वर्णों का समर्थन करना चाहिए। – Piskvor

+0

http://maryniuk.blogspot.com/2010/09/custom-ttf-fonts-in-jasperreports।एचटीएमएल ने मुझे मदद की –

उत्तर

8

सबसे पहले, सुनिश्चित करें कि आप सही एन्कोडिंग बनाती हैं:

JRPdfExporter exporter = new JRPdfExporter(); 
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8"); 

तो फिर तुम जो कि सिरिलिक समर्थन करने के लिए फोंट बदलना चाहिए। इस शैली के माध्यम से किया जाता है:

public void addPdfFontsToStyles(JRStyle[] styles) { 
    if (styles != null) { 
     for (JRStyle style : styles) { 
      if (style.getName().equals("reportStyle")) { 
       style.setPdfFontName("/com/yourcompany/fonts/times.ttf"); 
       style.setBlankWhenNull(true); 
      } 

      if (style.getName().equals("reportBoldStyle")) { 
       style.setPdfFontName("/com/yourcompany/fonts/timesbd.ttf"); 
       style.setBlankWhenNull(true); 
      } 

     } 
    } 
} 

और addPdfFontsToStyles(jasperReport.getStyles());

बेशक के साथ इस विधि आह्वान, आवश्यक शर्तें हैं:

  • अपने पाठ के ऊपर शैली नामों में से एक का उपयोग कर रहा
  • आप
  • क्लासपाथ पर टीटीएफ फाइलें

ऐसा करना चाहिए यह JVM में

+0

+1 बहुत अच्छी तरह से काम किया - धन्यवाद! – 01es

2
  1. रजिस्टर फ़ॉन्ट (मैं एक काम कर cyrilic आवेदन से कोड ले रहा हूँ)

    Font myFont = Font.createFont(Font.TRUETYPE_FONT, new File("pathToCyrillicFont")); 
    GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(myFont); 
    
  2. जोड़ने सिरिलिक क्षेत्र को यह:

    <textElement> 
        <font 
            fontName="fontName" 
            pdfFontName="pathToCyrillicFont" 
            size="13" 
            isBold="false" 
            isItalic="false" 
            isUnderline="false" 
            isPdfEmbedded ="true" 
            pdfEncoding ="Cp1251" 
            isStrikeThrough="false" 
        /> 
    </textElement> 
    

का आनंद लें !

9

iReport पर कुछ टेक्स्ट फ़ील्ड गुण सेट करें। फ़ॉन्ट डीजावु सैन्स का उपयोग करें। सीपी 1251 और isPdfEmbedded से सत्य पर पीडीएफ एन्कोडिंग सेट करें।

पूर्व .: <font fontName="DejaVu Sans" isStrikeThrough="false" pdfEncoding="Cp1251" isPdfEmbedded="true" />

JasperReports Maven निर्भरता के रूप में फोंट:

<dependency> 
    <groupId>net.sf.jasperreports</groupId> 
    <artifactId>jasperreports-fonts</artifactId> 
</dependency> 
+0

महान उत्तर !!! – mist

+0

3 साल बाद ... पीडीएफ एन्कोडिंग को बहिष्कृत किया गया है, हालांकि यदि आप अपने फ़ॉन्ट का उपयोग करना चाहते हैं तो जेस्पररेपोर्ट्स-फोंट फ़ॉन्ट-एक्सटेंशन का उपयोग करता है, http://stackoverflow.com/questions/34041619/jasper-reports-pdf-doesnt-export- साइरिलिक-मूल्य/फ़ॉन्ट-एक्सटेंशन उदाहरण के लिए। –

2

के बाद से Jasper रिपोर्ट v5, में पीडीएफ font-extension

उपयोग करने के लिए अधिक जानकारी के लिए है वर्ण प्रदर्शित करने के लिए सही तरीका v6 इन प्रश्नों को स्टैक ओवरफ्लो पर देखें:

Jasper Reports PDF doesn't export cyrillic values

How can I display "$£Ω€απ⅔" in Jasperserver PDF using iReport?

संबंधित मुद्दे