Я использую пользовательский шрифт TrueType в PDF, сгенерированном летающей тарелкой xhtmlrenderer.
ITextRenderer renderer = new ITextRenderer();
renderer.getFontResolver().addFont("myfont.ttf", BaseFont.CP1252, BaseFont.EMBEDDED);
renderer.setDocument(XMLResource.load(in).getDocument(), url);
renderer.layout();
renderer.createPDF(out);
и в отображаемом html у меня есть следующее (например)
<html>
<head>
<style type="text/css">
*{font-family:myfont;} /* <-- this works, trust me */
</style>
</head>
<body>
<p>some plain text<b>some bold text</b> <span style="font-weight:bold;">more bold</span></p>
</body>
</html>
, но даже с <b>
и font-weight:bold
я не могу получить текст, выделенный жирным шрифтом.
Теперь я знаю, что это должно работать, потому что у меня есть аналогичный (унаследованный) проект, которыйиспользует тот же шрифт и обычный старый itext (т.е. без xhtmlrenderer), и он создает PDF-файлы с жирным текстом через:
myFont = BaseFont.createFont("myfont.ttf", BaseFont.CP1252, BaseFont.EMBEDDED);
Font boldFont = new Font(myFont);
boldFont.setStyle(Font.BOLD);
com.lowagie.text.Document document = ...;
document.add(new Paragraph("plain", myFont));
document.add(new Paragraph("bold", boldFont));
Может кто-нибудь объяснить, почему я не могу использовать жирный шрифт с xhtmlrenderer, и, возможно, способчтобы решить эту проблему?
спасибо, стр.