PDF를 생성하려면 java에서 itext 5.3을 사용하고 있습니다. 나는 HTMLWorker.parseToList(Reader, StyleSheet)
을 사용하여 굵게, 기울임 꼴, href 등의 HTML 태그가 포함 된 String으로 부분을 PDF로 변환했습니다. HTML로 완성 된 HTML을 PDF로 생성하는 대신 PDF의 텍스트 부분을 HTML로 생성하고 싶습니다. 예를 들어, "This is test bold text"와 같은 문자열은 텍스트의 일부를 굵게 변환합니다.XMLWorkerHelper 성능이 느림
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;
}
}
에서이 문제의 원인 AnotherJavafile.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");
내가 너무 불행하게도이 클래스에서 다소 저조한 실적을보고하고, 아니지만 자바에서, iTextSharp에서, 같은 라이브러리의 C# 포트. –
나도 그래. culperate는 다음과 같은 ParseXHtml 내부 메서드입니다. iTextSharp.text.FontFactoryImp.RegisterDirectories –
또한보십시오 itextsharp 문제 - http://stackoverflow.com/q/21275800/179972 –