Я определил карту тегов и получил файл данных XML. Я хочу преобразовать файл данных XML в PDF с помощью iText. Вопрос заключается в том, как вставлять шрифты (например, польский шрифт, китайский шрифт) в целевой PDF при преобразовании XML в PDF?
Вставить шрифт в файл PDF с помощью iText
Ответ 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;