建立和使用字型副檔名

使用 IDE 建立字型副檔名。有關詳細資訊,請參閱 iReportJaspersoft Studio 文件。也可以手動建立字型副檔名。

什麼是字型擴充套件?

使用 textElement 你可以指定一個字型(如果沒有指定預設字型 SansSerif 使用)

<textElement>
    <font fontName="DejaVu Sans"/>
</textElement>

要計算字型度量(用於換行符,對齊等)並正確呈現字型,需要在 JVM (Java 虛擬機器)中對映字型。你可以將字型檔案直接安裝到 JVM,但這不是鼓勵 ****

來自 JasperReport 終極指南:

我們強烈建議人們只使用從字型擴充套件派生的字型,因為這是確保在執行時執行報表時應用程式可以使用字型的唯一方法。使用系統字型時,如果部署在可能未安裝這些字型的新計算機上,則始終會帶來報告無法正常工作的風險

預設字型副檔名

JasperReports 提供了一個預設的字型副檔名(請參閱 maven distribution jasperreports-fonts.jar)。將其新增到類路徑中,你可以使用以下 fontName,而無需建立自己的字型副檔名

DejaVu Sans
DejaVu Serif
DejaVu Sans Mono

常見問題

pdf(itext) 中使用 font 時需要考慮的問題:

  • 匯出為 PDF 時,如果文字未正確呈現(缺少部分,未顯示的字元,未正確包裝或調整大小),則可能缺少字型副檔名

  • 是否支援實際的 .tffOpenType )並且字型是否可以實際呈現字元?並非所有字型都在 UTF-8 中呈現所有字元。

  • 是否將正確的編碼傳遞給 iText?在懷疑(或一般)使用編碼 Identity-H,建議使用較新的 PDF 標準,並使你能夠混合使用不同的編碼。

  • 是否嵌入了字型,以便即使未安裝字型,跨計算機共享的 PDF 也可以顯示內容?如果字型不是 14 種標準型別 1 字型之一,則始終嵌入它。

請注意,jasper 報告使用的 iText 版本不會渲染所有字型( ligaturizer 問題 ),你可以直接測試 ttf 字型和編碼。如何測試我的字型是否在 pdf 中正確呈現?