Jasper iReport 中的问题在 Chrome 中生成了 PDF
Issue in Jasper iReport generated PDFs in Chrome
我正在使用 Jasper iReport 5 中的条件格式生成中文和其他几种语言的文档。我的 lib 文件夹中有 iTextAsian.jar。生成的PDF在IE、Firefox、Adobe、Foxit中显示中文但不Chrome。
在Chrome中,所有的汉字都不见了。我将 isPdfEmbedded 设置为 true。这是我分配给中文字段的样式。我不是嵌入了吗?
<style name="DynamicFont" isDefault="true" forecolor="#000000" backcolor="#FFFFFF" isBlankWhenNull="false" fontName="SansSerif" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Helvetica" isPdfEmbedded="true">
<conditionalStyle>
<conditionExpression><![CDATA[$F{locale}.toString().compareToIgnoreCase("am_ET") == 0]]></conditionExpression>
<style mode="Transparent" forecolor="#000000" fontName="SansSerif" pdfFontName="Amharic-Eng-Regular.ttf" pdfEncoding="Identity-H" isPdfEmbedded="true"/>
</conditionalStyle>
<conditionalStyle>
<conditionExpression><![CDATA[$F{locale}.toString().compareToIgnoreCase("vi_VN") == 0]]></conditionExpression>
<style mode="Transparent" forecolor="#000000" fontName="SansSerif" pdfFontName="customizationsFonts/Roboto-Regular.ttf" pdfEncoding="Identity-H" isPdfEmbedded="true"/>
</conditionalStyle>
<conditionalStyle>
<conditionExpression><![CDATA[$F{locale}.toString().compareToIgnoreCase("zh_CN") == 0]]></conditionExpression>
<style mode="Transparent" forecolor="#000000" fontName="SansSerif" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</conditionalStyle>
</style>
这是Chrome问题还是关于我使用 iReport 生成 PDF 的方式?
非常感谢您的时间和耐心。
约翰
-- 编辑--
这是一个示例文件:[example.pdf]:http://www.easleybooks.com/example.pdf
我假设您的代码没有错误,因为如果存在任何错误,其他浏览器也无法正确显示您的报告。您可以尝试这些步骤来避免您的问题。
- 您的一些 chrome 扩展会中断您的报告生成。在那里禁用你的 chrome 扩展。
- 再次打开你的 Chrome developer tools 和 运行 你的代码,看看控制台中是否有任何错误生成。
- 根据这个 discussion chrome 中存在一个阻止中文和日文字母显示的错误。在那里更新你的 chrome 到最新。
- 尝试通过 自定义和控制(扳手图标)> 工具 > 编码 >select Unicode (UTF-8)[=32 在最新的 chrome 中设置设置=]
如果这些解决方案不起作用,请尝试将 jasper 更新到最新版本。我看到老版本的jasper在看中文和日文的时候有问题
更新-:
您在代码中使用了中文字体 pdfFontName="STSong-Light"
。尝试使用任何 Chinese simplified font 来打印您的 pdf,因为在 Firefox 中,您的中文语言被理解为两种字体的集合(Microsoft YaHei 和 Yu Gothic),但在 Chrome 中,即使 acrobat 扩展是启用。 您必须更改 pdf 中的中文字体名称。
我正在使用 Jasper iReport 5 中的条件格式生成中文和其他几种语言的文档。我的 lib 文件夹中有 iTextAsian.jar。生成的PDF在IE、Firefox、Adobe、Foxit中显示中文但不Chrome。
在Chrome中,所有的汉字都不见了。我将 isPdfEmbedded 设置为 true。这是我分配给中文字段的样式。我不是嵌入了吗?
<style name="DynamicFont" isDefault="true" forecolor="#000000" backcolor="#FFFFFF" isBlankWhenNull="false" fontName="SansSerif" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Helvetica" isPdfEmbedded="true">
<conditionalStyle>
<conditionExpression><![CDATA[$F{locale}.toString().compareToIgnoreCase("am_ET") == 0]]></conditionExpression>
<style mode="Transparent" forecolor="#000000" fontName="SansSerif" pdfFontName="Amharic-Eng-Regular.ttf" pdfEncoding="Identity-H" isPdfEmbedded="true"/>
</conditionalStyle>
<conditionalStyle>
<conditionExpression><![CDATA[$F{locale}.toString().compareToIgnoreCase("vi_VN") == 0]]></conditionExpression>
<style mode="Transparent" forecolor="#000000" fontName="SansSerif" pdfFontName="customizationsFonts/Roboto-Regular.ttf" pdfEncoding="Identity-H" isPdfEmbedded="true"/>
</conditionalStyle>
<conditionalStyle>
<conditionExpression><![CDATA[$F{locale}.toString().compareToIgnoreCase("zh_CN") == 0]]></conditionExpression>
<style mode="Transparent" forecolor="#000000" fontName="SansSerif" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</conditionalStyle>
</style>
这是Chrome问题还是关于我使用 iReport 生成 PDF 的方式?
非常感谢您的时间和耐心。
约翰
-- 编辑--
这是一个示例文件:[example.pdf]:http://www.easleybooks.com/example.pdf
我假设您的代码没有错误,因为如果存在任何错误,其他浏览器也无法正确显示您的报告。您可以尝试这些步骤来避免您的问题。
- 您的一些 chrome 扩展会中断您的报告生成。在那里禁用你的 chrome 扩展。
- 再次打开你的 Chrome developer tools 和 运行 你的代码,看看控制台中是否有任何错误生成。
- 根据这个 discussion chrome 中存在一个阻止中文和日文字母显示的错误。在那里更新你的 chrome 到最新。
- 尝试通过 自定义和控制(扳手图标)> 工具 > 编码 >select Unicode (UTF-8)[=32 在最新的 chrome 中设置设置=]
如果这些解决方案不起作用,请尝试将 jasper 更新到最新版本。我看到老版本的jasper在看中文和日文的时候有问题
更新-:
您在代码中使用了中文字体 pdfFontName="STSong-Light"
。尝试使用任何 Chinese simplified font 来打印您的 pdf,因为在 Firefox 中,您的中文语言被理解为两种字体的集合(Microsoft YaHei 和 Yu Gothic),但在 Chrome 中,即使 acrobat 扩展是启用。 您必须更改 pdf 中的中文字体名称。