Я использую Flying Saucer 9.0.9 (это то же самое на 9.0.8), и я получаю странное поведение при использовании настраиваемого шрифта с помощью «IDENTITY-H "кодирование. Когда я использую эту кодировку, я получаю размытость и неповторимый характер во всем моем pdf. При использовании шрифта Arial Unicode MS все работает как ожидалось (но я не могу использовать его из-за проблем с лицензированием), с любым другим шрифтом я не имел успеха. В результате использования FreeSans: HTML в PDF с использованием пользовательского шрифта (Identity-H)
Как я добавляю шрифт:
ITextRenderer iTextRenderer = new ITextRenderer();
ITextFontResolver iTextFontResolver = iTextRenderer.getFontResolver();
iTextFontResolver.addFont("templates/FreeSans.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
HTML-:
<?xml version="1.0"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
* {
font-family: FreeSans;
}
</style>
</head>
<body>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<p>Test Great White Fox Jumps Over The Hedge?</p>
ĐĕĞĦķŔŶ
</body>
</html>
Как я создавать PDF:
iTextRenderer.setDocument(new File(getClass().getClassLoader().getResource("templates/test.html").getFile()));
iTextRenderer.layout();
final FileOutputStream fs = new FileOutputStream("C://temp//temp.pdf");
iTextRenderer.createPDF(fs);
При использовании различной кодировки (например: WINANSI) первая строка текста - ren правильно, но, очевидно, вторая строка - нет. Мне действительно нужно иметь возможность создавать UNICODE (IDENTITY-H) PDF-файлы.
Вы можете скачать результат PDF по ссылке ниже: download pdf from dropbox
Любая помощь очень ценится.
ОБНОВЛЕНИЕ: По-видимому, это не имело ничего общего с iText или Flying Saucer. Наш сборник Maven строит единую толстую банку, шрифт также включен в эту банку. Но во время копирования из файловой системы в банку шрифт был поврежден.
Я попытался воспроизвести проблему, но когда я создаю PDF на основе вашего HTML, результат является идеальным. Вы уверены, что файл шрифта (FreeSans.ttf) не поврежден? – obourgain
@obourgain Я уверен, что шрифт не поврежден (я перезагрузил его, но не изменил). Я также получаю то же поведение с другими бесплатными шрифтами unicode: NotoSans, Bitstream Vera Sans. – JordiJansen