Добавление смайлика UNICODE в PDF с помощью itext

У меня проблема с добавлением смайлика Unicode в PDF-файл, созданный с помощью itext pdf. Я пробовал с этим и itextpdf core 5.5.13

public class MathSymbols { 
public static final String DEST = "EXAMPLE.pdf";
public static final String FONT = "/res/fonts/arialuni.ttf";
public static String TEXT ;

public static void main(String[] args) throws IOException, DocumentException {
    File file = new File(DEST);
    TEXT = "this "+Character.toChars(0x1F600)+" string \uD83D\uDE00 contains \ud83d\ude00 special \u2609 characters like this  \u2208, \u2229, \u2211, \u222b, \u2206";
    new MathSymbols().createPdf(DEST);

}

public void createPdf(String dest) throws IOException, DocumentException {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();
   BaseFont bf = BaseFont.createFont(FONT, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
    Font f = new Font(bf,12);
    Paragraph p = new Paragraph(TEXT, f);
    document.add(p);
    document.close();
}}

У меня такая же проблема с itextpdf 7.x с этим фрагментом

public class Main {

public static final String DEST = "example.pdf";

public static void main(String args[]) throws IOException {
    File file = new File(DEST);
    new Main().createPdf(DEST);
}

public void createPdf(String dest) throws IOException {
    PdfWriter writer = new PdfWriter(dest);
    PdfDocument pdf = new PdfDocument(writer);
    Document document = new Document(pdf);
    PdfFont f = PdfFontFactory.createFont("/resources/arialuni.ttf", PdfEncodings.IDENTITY_H,true);
    Paragraph p = new Paragraph("H\u2082SO\u2074 1 \uD83D\uDE00 contains \ud83d\ude00 spe \u2702 cial \u2609 characters like this  \u2208, \u2229, \u2211, \u222b, \u2206").setFont(f).setFontSize(10);
    document.add(p);
    document.close();
}}

Я пробовал использовать разные шрифты и разные способы в java, например здесь. Но я получаю только пробел или квадрат в pdf, а не смайлик.

У arialuni нет смайлов.

Paulo Soares 21.03.2018 13:24

Много перепробовала, можете ли вы подсказать какой-нибудь шрифт со смайлами?

Ignazio Cricelli 21.03.2018 13:56

Основная проблема: большинство форматов шрифтов (и дизайн шрифтов) не позволяют использовать несколько цветов для символов, поэтому вы найдете не так много шрифтов, и, возможно, они не будут работать с pdf (или многими программами для чтения pdf). Поместите смайлы в виде крошечных фигурок.

Giacomo Catenazzi 21.03.2018 16:54

Извините за запоздалый ответ, мне достаточно для стандартного смайлика чёрно-белого цвета: ☺.

Ignazio Cricelli 08.04.2018 10:36
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
529
0

Другие вопросы по теме