来自Jasper的PDF中不需要的字体Helvetica

时间:2009-12-11 17:21:25

标签: jasper-reports

当我从Jasper报告创建PDF时,生成的PDF声明使用“Helvetica”字体,即使它不包含文本。 不幸的是我无法嵌入“Helvetica”字体,因为它不属于Windows字体。 根据PDF / A规则,我需要在PDF文件中嵌入所有字体。

如何从Jasper创建一个未声明使用Helvetica的PDF?

提前谢谢。

的Fabio

2 个答案:

答案 0 :(得分:1)

以下是JasperReports图书馆主要设计师Teodor Danciu的解释:

https://community.jaspersoft.com/jasperreports-library/issues/5368

显然,为避免使用Helvetica,您可以创建使用其中一种字体的默认样式。

答案 1 :(得分:0)

你可以尝试一些事情,你看看reportFont元素吗?

<!ELEMENT reportFont EMPTY> 
<!ATTLIST reportFont
     name CDATA #REQUIRED 
     isDefault (true | false) "false" 
     fontName CDATA #IMPLIED 
     size NMTOKEN #IMPLIED 
     isBold (true | false) #IMPLIED 
     isItalic (true | false) #IMPLIED 
     isUnderline (true | false) #IMPLIED 
     isStrikeThrough (true | false) #IMPLIED 
     pdfFontName CDATA #IMPLIED 
     pdfEncoding CDATA #IMPLIED 
     isPdfEmbedded (true | false) #IMPLIED
> 

但请注意,现在不推荐使用报告字体,因此您可能需要查看样式元素:

<!ELEMENT style (conditionalStyle*)> 
<!ATTLIST style
     name CDATA #IMPLIED 
     isDefault (true | false) "false" 
     ...
     forecolor CDATA #IMPLIED 
     isStyledText (true | false) #IMPLIED 
     fontName CDATA #IMPLIED 
     fontSize NMTOKEN #IMPLIED 
     isBold (true | false) #IMPLIED 
     isItalic (true | false) #IMPLIED 
     isUnderline (true | false) #IMPLIED 
     isStrikeThrough (true | false) #IMPLIED 
     pdfFontName CDATA #IMPLIED 
     pdfEncoding CDATA #IMPLIED 
     isPdfEmbedded (true | false) #IMPLIED
     pattern CDATA #IMPLIED 
     isBlankWhenNull (true | false) #IMPLIED
>

pdfFontName应该是您计划使用的字体的名称。这可以是预定义的PDF字体,也可以是类路径中存在的TTF文件的名称。如果您使用的是TTF,请注意isPdfEmbedded指定是否应在PDF文件中包含外部TrueType字体(TTF)文件

问候!