Я работаю над приложением для Android, которое создает PDF-файл, содержащий изображение и текст, набранный пользователем. PDF создается с помощью PdfDocument lib.
Если строка заголовка содержит смайлики, приложение правильно отображает содержимое.
Контент корректно отображается на устройстве:
Но когда они нарисованы на холсте в формате PDF, смайлики размываются, и кажется, что некоторые из них содержат символ под ними:
Странный белый символ под клубникой и вишней:
Мой код:
CharSequence emoji_title = EmojiCompat.get().process(title);
StaticLayout.Builder builder = StaticLayout.Builder.obtain(emoji_title, 0, emoji_title.length(), titleTextPaint, TITLE_RECT_WIDTH)
.setAlignment(Layout.Alignment.ALIGN_NORMAL)
.setBreakStrategy(Layout.BREAK_STRATEGY_HIGH_QUALITY)
.setLineSpacing(0, 1f)
.setIncludePad(false);
StaticLayout textLayout = builder.build();
float x = TITLE_LEFT_MARGIN;
float y = TITLE_TOP_MARGIN + (TITLE_RECT_HEIGHT - textLayout.getHeight()) / 2;
canvas.save();
canvas.translate(x, y);
textLayout.draw(canvas);
canvas.restore();
Что мне делать, мне кажется, что обнаружение смайликов смайликов и их замена не очень практичное решение.