空飛ぶ円盤 xhtmlrenderer によって生成された PDF でカスタム TrueType フォントを使用しています。
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で太字を使用できない理由と、この問題を克服する方法を誰かが説明できますか?
ありがとう、p。