如何使用Android Paint保留重音符号?

时间:2018-12-21 18:34:47

标签: android pdf fonts android-canvas

我正在使用Android PaintCanvasPdfDocument将文本写入PDF文件,如下所示:

String title = "Marián";
Paint titlePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
titlePaint.setTypeface(Typeface.DEFAULT);
PdfDocument document = new PdfDocument();
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(pageWidth, pageHeight, document.getPages().size()).create();
PdfDocument.Page page = document.startPage(pageInfo);
Canvas canvas = page.getCanvas();
canvas.drawText(title, 72, 72, titlePaint);

问题在于,像“ Mariann”这样的词会以“ Marian”的形式出现。重音字符将替换为普通字符(不像我通常遇到的编码问题那样更改为空框或问号)。

这是我使用的“ DEFAULT”字体的限制吗?我是否需要加载自定义字体并使用它,还是有一种更简单的方法来支持重音符(最好是各种各样的Unicode字符)?

更新

这似乎不是字体问题,因为我将字体从DEFAULT更改为一种自定义字体,该字体可以在屏幕上的TextViews中正确显示这些字符,但是在画布上绘制时,重音符号仍会被删除。 / p>

我还发现了一个有关硬件加速不受支持的绘图操作的问题,因此我在AndroidManifest中关闭了整个应用程序的硬件加速,但这没什么区别。

更新2

叹息...重音字符没有显示,因为我前一阵子添加了代码,使用Normalizer对象将其去除。但是我没有留下评论来解释为什么需要这样做,现在我不记得了。我将不得不尝试将这些字符放回PDF文件中,以找出为什么这样做,然后寻找替代解决方案。

0 个答案:

没有答案