从Swing导出的iTextPDF(JFreeChart)包含特定的unicode字符

从Swing导出的iTextPDF(JFreeChart)包含特定的unicode字符,unicode,fonts,itext,jfreechart,Unicode,Fonts,Itext,Jfreechart,我刚刚意识到,iTextPDF在绘制图表时吞下了一些unicode字符。我使用了一个直方图符号,如下所示: val sig = if (bin < 0) "\u2212" else if (bin > 0) "+" else "" val sig=if(bin0)“+”else“ 该图表使用JFreeChart呈现,并通过iTextPDF的PDFGraphics2D类导出。减号(我之所以选择减号,是因为连字符-太短)被吞

我刚刚意识到,iTextPDF在绘制图表时吞下了一些unicode字符。我使用了一个直方图符号,如下所示:

val sig = if (bin < 0) "\u2212" else if (bin > 0) "+" else ""
val sig=if(bin<0)“\u2212”else if(bin>0)“+”else“
该图表使用JFreeChart呈现,并通过iTextPDF的PDFGraphics2D类导出。减号(我之所以选择减号,是因为连字符
-
太短)被吞没在输出PDF中。使用的字体是Helvetica,因此不应该存在映射问题。Swing的屏幕截图:

这里是预览版中的PDF:


字符被隔开以弥补缺少的减号。这里有什么问题?字体映射?

所以减号
\u2212
不起作用,也不是数字破折号
\u2012
。我可以让n-dash
\u2013
工作,但就我的口味而言,它有点夸张(负号应该是正确的字符)。使用的字体是Helvetica,所以应该没有映射问题。-恰恰相反,很可能存在问题。Helvetica是用于PDF查看器的14种标准字体之一,但是这些标准字体只需要在有限的字符集上支持,请参见规范ISO 32000-1。那么我该如何处理呢?我是否需要设置特定的字体映射器?很可能是。不过,我还没有大量使用iText的
Graphics2D
界面,因此我无法对此提供帮助@布鲁诺洛瓦吉可能有个主意。