2015-12-15 27 views
2

我爲jasper報告使用了i-report 5.5.0。我需要將印地文文本導出爲PDF格式,但印地語部分正在轉換爲???????如何在導出爲PDF格式時正確顯示印地文?

我已經使用字體的擴展,但它並沒有幫助:

字體名稱: 「嘉黎梵文」
PDF內嵌:檢查
PDF 編碼:身份-H

我也試過其他印地語字體,但沒有任何工作到目前爲止..

<textField> 
    <reportElement x="111" y="26" width="100" height="20" uuid="5a471a16-de7b-4f55-9c9f-b01d37938b9f"/> 
    <textElement> 
     <font fontName="Lohit Devanagari" pdfEncoding="Identity-H" isPdfEmbedded="false"/> 
    </textElement> 
    <textFieldExpression><![CDATA[$F{DISTRICT_NAME}]]></textFieldExpression> 
</textField> 
+0

您是否使用了[字體擴展名](http://jasperreports.sourceforge.ne T/sample.reference /字體/ index.html的#fontextensions)? –

+0

可能的重複:[在JasperReport中使用UTF-8創建印地語PDF](http://stackoverflow.com/q/21532766/876298)&[JasperReports中的印地語字體](http://stackoverflow.com/q/23978392/ 876298)&[賈斯珀報告在印地文PDF](http://stackoverflow.com/q/27819886/876298) –

+0

@亞歷克斯,可能的重複沒有答案或接受的答案,用戶已嘗試字體擴展,看問題(可能不正確或ttf字體無法呈現uni代碼),這就是爲什麼我發佈了答案。 –

回答

1

正確的方法是使用font-extensionspdfEncoding="Identity-H"已棄用

首先明確這checklist to render font in pdf

  1. 是我的實際.tff支持OpenType),並能在實際的字體渲染字符。不是所有的字體在UTF-8

渲染 所有字符一旦你創建了正確的字體擴展,它不工作這可能是你的問題..

  • 我是否將正確的編碼傳遞給iText。在懷疑(或一般)使用 編碼身份-H這是推薦用於較新的PDF標準 ,併爲您提供混合不同編碼的能力。
  • 身份-H似乎確定

  • 是我的字體嵌入使得如果我還共享PDF計算機不 具有該字體可顯示內容。
  • 嵌入您的字體(否則,如果你讓你的電腦上工作,它可能 不能在其他工作),注意:在您JRXML爲isPdfEmbedded=false,去除標籤和字體擴展選擇true或設置標籤true

    現在只要產生字體擴展正確並將其添加到您的classpath

    How to add font extensions

    編輯:用戶通過字體

    字體Krutidev_011.TTF是後不有效的ttf字體可能是因爲不幸的是根據蘋果的標準和根據微軟的標準分歧(我的顧客你的字體是一個蘋果ttf不是一個開放式ttf)。

    Caused by: net.sf.jasperreports.engine.JRRuntimeException: java.awt.FontFormatException: java.nio.BufferUnderflowException 
    at net.sf.jasperreports.engine.fonts.SimpleFontFace.setTtf(SimpleFontFace.java:178) 
    

    我試圖download從網絡的有效TTF字庫嘉黎梵文並將其添加爲字體的擴展,fontName="Lohit Devanagari"這是我的結果:

    fontTest

    如果你想試試這個是我使用的字體擴展名font extension jar for Lohit Devanagari,請記得設置fontName="Lohit Devanagari"

    +0

    我的實際.tff正確渲染單詞,當我導出爲其他格式時效果很好(如在HTML,ODT,EXCEL中)只有PDF導出正在創建問題 –

    +0

    您可以共享字體擴展名的jar嗎?和你的jrxml(或一個文本不顯示的小jrxml來測試你的字體擴展名)? –

    +0

    Jar文件:-http://s000.tinyupload.com/index.php的file_id = 03986171897156283365 JRXML: - \t \t \t \t \t \t \t \t \t \t \t \t \t <字型的fontName = 「Kruti開發011」 pdfEncoding = 「同一性-H」 isPdfEmbedded = 「true」/> \t \t \t \t \t \t \t \t <![CDATA [$ F {} DISTRICT_NAME_HINDI]]> \t \t \t

    相關問題