导出为 pdf 时如何正确呈现印地语?
How can I render hindi correctly when exporting to pdf?
我正在为 jasper 报告使用 i-report 5.5.0。我需要将印地语文本导出为 PDF 格式,但印地语部分正在转换为 ???????
。
我已经使用了字体扩展,但没有用:
font name: "lohit Devanagari"
PDF embedded: checked
PDF
encoding:Identity-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>
正确的方法是使用 font-extensions。 pdfEncoding="Identity-H"
已 弃用 。
先清除这个:
- 是我的实际
.tff
支持 (OpenType) 并且字体实际上可以 render 字符。并非所有字体都呈现
UTF-8
中的所有字符
Once you have created correctly font extension and its not working this is probably your problem..
- 我是否将 正确的编码 传递给 iText。有疑问(或一般)使用
编码 Identity-H 建议用于较新的 PDF 标准
并让您能够混合不同的编码。
Identity-H seems ok
- 我的字体 是否嵌入 以便如果我共享 pdf 也计算机不
有这个字体才能显示内容
Embed your font (otherwise if you make it work on your computer it may
not work on others), note in your jrxml is isPdfEmbedded=false
, remove tag and in font-extension select true
or set tag to true
.
现在只需正确生成 字体扩展 并将其添加到您的 classpath
,
编辑:用户传递字体后
字体 Krutidev_011.TTF
不是有效的 ttf 字体,这可能是因为不幸的是,根据 Apple 的标准和根据 Microsoft 的标准不同(我猜你的字体是 apple 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 字体 Lohit Devanagari 并将其添加为字体扩展名,fontName="Lohit Devanagari"
这是我的结果:
正在渲染字体,但结果可能有 Ligaturizer 问题,有关如何解决这些问题,请参见
如果你喜欢试试这个是我用的字体扩展font extension jar for Lohit Devanagari,记得设置fontName="Lohit Devanagari"
我有同样的问题,我用 gargi.ttf 字体解决了它。 download here
使用此配置
"gargi" => array(
'R' => "gargi.ttf",
'useOTL' => 0xFF,
),
这对我有用
IndicLigaturizer hindi = new DevanagariLigaturizer();
String result = hindi.process(string);
Jasper 报告:- 您可以对印地语使用 Arial Unicode MS,并且在 java 构建路径
中包含相同的字体 jar
Jasper Font Arial Unicode MS
Arial unicode jar exported from ireport tool import in STS
Output same as input
我正在为 jasper 报告使用 i-report 5.5.0。我需要将印地语文本导出为 PDF 格式,但印地语部分正在转换为 ???????
。
我已经使用了字体扩展,但没有用:
font name: "lohit Devanagari"
PDF embedded: checked
PDF encoding:Identity-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>
正确的方法是使用 font-extensions。 pdfEncoding="Identity-H"
已 弃用 。
先清除这个
- 是我的实际
.tff
支持 (OpenType) 并且字体实际上可以 render 字符。并非所有字体都呈现UTF-8
中的所有字符
Once you have created correctly font extension and its not working this is probably your problem..
- 我是否将 正确的编码 传递给 iText。有疑问(或一般)使用 编码 Identity-H 建议用于较新的 PDF 标准 并让您能够混合不同的编码。
Identity-H seems ok
- 我的字体 是否嵌入 以便如果我共享 pdf 也计算机不 有这个字体才能显示内容
Embed your font (otherwise if you make it work on your computer it may not work on others), note in your jrxml is
isPdfEmbedded=false
, remove tag and in font-extension selecttrue
or set tag totrue
.
现在只需正确生成 字体扩展 并将其添加到您的 classpath
,
编辑:用户传递字体后
字体 Krutidev_011.TTF
不是有效的 ttf 字体,这可能是因为不幸的是,根据 Apple 的标准和根据 Microsoft 的标准不同(我猜你的字体是 apple 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 字体 Lohit Devanagari 并将其添加为字体扩展名,fontName="Lohit Devanagari"
这是我的结果:
正在渲染字体,但结果可能有 Ligaturizer 问题,有关如何解决这些问题,请参见
如果你喜欢试试这个是我用的字体扩展font extension jar for Lohit Devanagari,记得设置fontName="Lohit Devanagari"
我有同样的问题,我用 gargi.ttf 字体解决了它。 download here 使用此配置
"gargi" => array(
'R' => "gargi.ttf",
'useOTL' => 0xFF,
),
这对我有用
IndicLigaturizer hindi = new DevanagariLigaturizer();
String result = hindi.process(string);
Jasper 报告:- 您可以对印地语使用 Arial Unicode MS,并且在 java 构建路径
中包含相同的字体 jarJasper Font Arial Unicode MS
Arial unicode jar exported from ireport tool import in STS
Output same as input