我在java中使用itext 5.3来生成PDF。我HTMLWorker.parseToList(Reader, StyleSheet)
用来将部分转换为包含 HTML 标签(如粗体、斜体、href 等)的字符串到 PDF。我不想生成完整的 HTML 到 PDF,而是 PDF 中的部分文本将是 HTML。例如,像“这是测试粗体文本”这样的字符串将部分文本转换为粗体。
性能很好HTMLWorker
。
自从它现在被弃用以来,我开始使用XMLWorkerHelper.parseXHtml(ElementHandler, Reader)
,我发现与HTMLWorker
.
如果有人对解决方案或任何其他解决方法有任何想法,请告诉我。
下面是示例代码,其他带有示例代码的帖子位于
HTML to List using XMLWorker
public class HTMLElementHandler implements ElementHandler {
private Phrase phrase;
private Font font;
private HTMLElementHandler(Phrase phrase, Font font) {
super();
setPhrase(phrase);
setFont(font);
}
@Override
public void add(Writable writable) {
if (writable instanceof WritableElement) {
List<Element> elements = ((WritableElement) writable).elements();
for (Element elem : elements) {
List<Chunk> chunks = elem.getChunks();
for (Chunk chunk : chunks) {
Font chunkFont = chunk.getFont();
//Do something with fonts here
}
phrase.setFont(font);
phrase.add(elem);
}
}
}
public Phrase getPhrase() {
return this.phrase;
}
public void setPhrase(Phrase phrase) {
this.phrase = phrase;
}
public Font getFont() {
return this.font;
}
public void setFont(Font font) {
this.font = font;
}
}
另一个Javafile.java
Phrase ph = new Phrase();
Font font = FontFactory.getFont(FontFactory.getFont("Arial").getFamilyname(), 12, new BaseColor(0, 102, 153));
XMLWorkerHelper.getInstance().parseXHtml(new HTMLElementHandler(phrase, font), "This is test <bold> bold </bold> text");