0
我有什么,我相信一些是在iText的有关编码。iText的特殊字符编码
我开发了XSL的报告,并希望从一个自定义的杂项文件文件打印一些特殊字符。
首先的.xsl代码
<span class="symbol card-logo"></span>
在此之后,代码的.xsl被转换为HTML。 HTML代码可以在浏览器中正常工作,并可以使用我想要的所有字符。但在此之后,我将HTML字符串传递给ITextRenderer。
ITextRenderer renderer = new ITextRenderer();
renderer.getFontResolver().addFont(otfFile.getAbsolutePath(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
byte[] bytes = htmlDocumentString.toString().getBytes("UTF-8");
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource is = new InputSource(bais);
Document doc = builder.parse(is);
renderer.setDocument(doc, null);
renderer.layout();
renderer.createPDF(outputStream);
outputStream.flush();
outputStream.close();
我几乎解决了这个问题,当我添加了BaseFont.IDENTITY_H
,同时加入了字体的渲染,但随后另一个字符从报告中消失(在™
- 商标图案)
怪异的一部分: 使用这样的代码,只有在报告中的任何位置打印了
字符,商标徽标才会被打印出来。否则,它只会打印它的“空间”。 另外,如果我不添加BaseFont.IDENTITY_H
,商标标识工作正常,但
没有。
我希望这不是太混淆!
好像印在
字符时,它延伸了“字符窗口”所以后来的商标图案印刷精美。但我不确定这一点。
 - icon;
™ - company logo