Вставить шрифт в файл PDF с помощью iText

Я определил карту тегов и получил файл данных XML. Я хочу преобразовать файл данных XML в PDF с помощью iText. Вопрос заключается в том, как вставлять шрифты (например, польский шрифт, китайский шрифт) в целевой PDF при преобразовании XML в PDF?

Ответ 1

Если вы больше работаете с iText, вы можете инвестировать в книгу iText - в ней есть примеры для всех функций iText,

Существует параметр, который вы указываете при создании шрифта, который определяет вложение шрифтов:

BaseFont helvetica = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED);
Font font = new Font(helvetica, 12, Font.NORMAL);

Здесь можно найти больше примеров, связанных с шрифтом iText: http://1t3xt.info/examples/browse/?page=toc&id=14

Ответ 2

Здесь очень простой способ проинструктировать iText для встраивания всех шрифтов. Вставьте это перед вашим кодом для загрузки шрифтов:

FontFactory.defaultEmbedding = true;

Ответ 3

Однако у вас возникнет проблема, если у вас не будет ни одного шрифта, соответствующего любым используемым вами символам, и вам понадобится несколько шрифтов.

В этом случае класс FontSelector предназначен для вас.

Я написал короткую статью об этом:
http://lechlukasz.wordpress.com/2010/01/06/using-dynamic-fonts-for-international-texts-in-itext/

Ответ 4

Вы можете попробовать преобразовать его в PDF/A, в который встроены все шрифты.

    PdfReader reader = new PdfReader(GetTemplateBytes());
    pst = new PdfStamper(reader, Response.OutputStream);

    pst.Writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_4);
    pst.Writer.PDFXConformance = PdfWriter.PDFA1A;