Я пишу текст в PDF-файл, используя Android Paint
, Canvas
и PdfDocument
, например:
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);
Проблема в том, что появляется слово "Мариан"как "Мариан".Символ ударения заменяется простым символом (не заменяется пустым полем или знаком вопроса, как я обычно вижу при проблемах с кодировкой).
Является ли это ограничение используемого шрифта "DEFAULT"?Нужно ли загружать пользовательский шрифт и использовать его, или есть более простой способ поддержки символов ударения (и предпочтительно широкого диапазона символов Юникода)?
Обновление
Похоже, это не проблема шрифта, потому что я изменил шрифт с DEFAULT на собственный шрифт, который правильно отображает эти символы в TextViews на экране, но знаки акцента по-прежнему удаляются при рисовании на холсте.
Я также нашел SO вопрос о неподдерживаемых операциях рисования с аппаратным ускорением, поэтому я отключил аппаратное ускорение в приложении AndroidManifest, но это не имело никакого значения.
Обновление2
Вздох ... символы акцента не отображаются, потому что я недавно добавил код, чтобы вырезать их, используя объект Normalizer.Но я не оставил комментарий, объясняющий, почему это было необходимо, и теперь я не помню.Мне придется поэкспериментировать с разрешением этих символов обратно в файлы PDF, чтобы выяснить, почему я это сделал, а затем искать альтернативное решение.