Я пытаюсь написать действительный HTML-код, содержащий некоторые нелатинские символы в PDF-файле, используя iText. и, более конкретно, использование ITextRenderer из Flying Saucer.
Мой короткий пример/код начинается с инициализации строковой переменной doc с этим значением:
Код: Выделить всё
String doc = ""
+ "Some greek characters: Καλημέρα Some greek characters"
+ "";
Код: Выделить всё
//write for debugging purposes in an html file
File newTextFile = new File("C:/work/test.html");
FileWriter fw = new FileWriter(newTextFile);
fw.write(doc);
fw.close();
Код: Выделить всё
ITextRenderer renderer = new ITextRenderer();
//add some fonts - if paths are not right, an exception will be thrown
renderer.getFontResolver().addFont("c:/work/fonts/TIMES.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
renderer.getFontResolver().addFont("c:/work/fonts/TIMESBD.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
renderer.getFontResolver().addFont("c:/work/fonts/TIMESBI.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
renderer.getFontResolver().addFont("c:/work/fonts/TIMESI.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
final DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
.newInstance();
documentBuilderFactory.setValidating(false);
DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
builder.setEntityResolver(FSEntityResolver.instance());
org.w3c.dom.Document document = builder.parse(new ByteArrayInputStream(
doc.toString().getBytes("UTF-8")));
renderer.setDocument(document, null);
renderer.layout();
renderer.createPDF(os);
В HTML-файле я получаю : Некоторые греческие символы: Καλημέρα Некоторые греческие символы (ожидается)
В файле PDF Я получаю: Некоторые греческие символы: Некоторые греческие символы (неожиданно — греческие символы игнорируются!!)
Зависимости:
[*]версия Java "1.6.0_27"
[*]itext-2.0.8 .jar
[*]de.huxhorn.lilith.3rdparty.flyingsaucer.core-renderer-8Pre2.jar
< /ul>
Я также экспериментировал с гораздо большим количеством шрифтов, но я думаю, что моя проблема не связана с использованием неправильных шрифтов. Любая помощь приветствуется.
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/102 ... rer-does-n
Мобильная версия