特定のフォント処理についてのコメントをご覧ください。 PDFファイルの生成自体を考慮
は、私は自分のpdfテーブルを作成し、以下のようなもので、そのセルを埋める、htmlContext
するために使用さだし、cssResolver
は、再利用可能なクラスの属性として定義される:
private ElementList getElementsFromHtml(final String html) throws IOException {
//...
// Pipelines
final ElementList elements = new ElementList();
final ElementHandlerPipeline end = new ElementHandlerPipeline(elements, null);
final HtmlPipeline htmlPipeline = new HtmlPipeline(htmlContext, end);
final CssResolverPipeline cssPipeline = new CssResolverPipeline(cssResolver, htmlPipeline);
// XML Worker
final XMLWorker worker = new XMLWorker(cssPipeline, true);
final XMLParser p = new XMLParser(true, worker, htmlContext.charSet());
final String resolvedHtml = "<body>" + html + "</body>";
p.parse(new ByteArrayInputStream(resolvedHtml.getBytes(htmlContext.charSet())), htmlContext.charSet());
return elements;
}
public void addHtml(final PdfPCell cell, final String html) throws IOException {
for (final Element e : getElementsFromHtml(html)) {
if (ColumnText.isAllowedElement(e)) {
cell.addElement(e);
} else {
LOG.error(String.format("### Element not allowed! ###\nElement (type: %d): %s\nContext: %s", e.type(), e.toString(), html));
}
}
}
私は思います私はすでにここで同じ考慮事項がありました:http://stackoverflow.com/questions/30712551/how-to-create-a-pdf-with-itextxmlworker-from-servlet-using-custom-font – Dfaure