2012-02-13 14 views
5

मैं पीडीएफ दस्तावेज में बाहरी फ़ॉन्ट का उपयोग करने की कोशिश कर रहा हूं। सेटिंग्स के माध्यम से इसे स्थापित करने के बाद iReport में इसका उपयोग करने में मुझे कोई समस्या नहीं है -> फ़ॉन्ट्स -> नया फ़ॉन्ट इंस्टॉल करें।iReport बाहरी फ़ॉन्ट

समस्या यह है कि जब मैं विस्तार और जावा परियोजना के classpath है कि जार के रूप में जोड़ने नया फ़ॉन्ट निर्यात - पीडीएफ उत्पन्न नहीं किया जा सका और

JRFontNotFoundException: Font 'Arial Custom' is not available to the JVM exception

मैं गलत क्या कर रहा हूँ के साथ विफल हो? धन्यवाद

युपीडी # 1:

jasperreports_extensions.properties

net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory 
net.sf.jasperreports.extension.simple.font.families.ireportfamily1329192368547=fonts/fontsfamily1329192368547.xml 

fontsfamily1329192368547.xml

<?xml version="1.0" encoding="UTF-8"?> 
<fontFamilies> 

    <fontFamily name="Arial Custom"> 
     <normal><![CDATA[fonts/arial.ttf]]></normal> 
     <bold><![CDATA[fonts/arialbd.ttf]]></bold> 
     <italic><![CDATA[fonts/ariali.ttf]]></italic> 
     <boldItalic><![CDATA[fonts/arialbi.ttf]]></boldItalic> 
     <pdfEncoding><![CDATA[Identity-H]]></pdfEncoding> 
     <pdfEmbedded><![CDATA[true]]></pdfEmbedded> 
     <locales> 
       <locale><![CDATA[en_US]]></locale> 
     </locales> 
    </fontFamily>  

</fontFamilies> 

फोंट निर्देशिका सभी ttf फ़ाइलें भी शामिल है। मैंने बस जार को क्लासपाथ में जोड़ा।

+0

क्या आप xml फ़ाइल को फ़ॉन्ट परिभाषा और jrxml फ़ाइल के स्निपेट के साथ पोस्ट कर सकते हैं जहां यह फ़ॉन्ट उपयोग किया जाता है? –

+0

आपके उत्तर के लिए धन्यवाद। प्रश्न – nKognito

+0

में अपडेट देखें, एलेक्स ने .jrxml के एक टुकड़े के लिए कहा। आपने इसे पोस्ट नहीं किया है। – mdahlman

उत्तर

12

यहां मेरा कामकाजी नमूना है।

फ़ॉन्ट परिभाषा फ़ाइल (मैं फॉन्ट के जार फ़ाइल से यह खुदाई):

<?xml version="1.0" encoding="UTF-8"?> 
<fontFamilies> 
    <fontFamily name="Arial"> 
     <normal><![CDATA[fonts/arial.ttf]]></normal> 
     <bold><![CDATA[fonts/arialbd.ttf]]></bold> 
     <italic><![CDATA[fonts/ariali.ttf]]></italic> 
     <boldItalic><![CDATA[fonts/arialbi.ttf]]></boldItalic> 
     <pdfEncoding><![CDATA[Identity-H]]></pdfEncoding> 
     <pdfEmbedded><![CDATA[false]]></pdfEmbedded> 
    </fontFamily> 
</fontFamilies> 

जार फ़ाइल आवेदन के classpath में है।

और यहाँ मेरी जावा कोड है:

String defaultPDFFont = "Arial"; 

JRProperties.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true"); 
JRProperties.setProperty("net.sf.jasperreports.default.font.name", defaultPDFFont); 

JasperReport jasperReport = JasperCompileManager.compileReport(reportSource); 
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params); 

JasperExportManager.exportReportToPdfFile(jasperPrint, outputFileName); 

मैं त्रुटि आप को रोकने के लिए net.sf.jasperreports.awt.ignore.missing.font गुण सेट (JRFontNotFoundException: Font 'Arial Custom' is not available to the JVM exception) मामले में फॉन्ट याद आ रही है। और मैंने net.sf.jasperreports.default.font.name संपत्ति को निर्धारित करने के लिए प्रॉपर्टी पीडीएफ फ़ाइल में उपयोग किए जाने वाले फ़ॉन्ट को निर्धारित करने के लिए सेट किया है।

आप इस गुण के बारे में जानकारी पढ़ सकते हैं: net.sf.jasperreports.awt.ignore.missing.font और net.sf.jasperreports.default.font.name

परिणामस्वरूप पीडीएफ फ़ाइल इस फ़ॉन्ट का उपयोग कर रही है (इस नमूने में Arial)।

+0

धन्यवाद! मैंने पाया कि मेरी समस्या कहां थी - मैंने एम्बेडेड के रूप में फ़ॉन्ट स्थापित किया। – nKognito

+0

@nKognito आपका स्वागत है :) –

+0

@AlexK बहुत धन्यवाद !!!! – Kaiser

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