iText + XHTMLRenderer를 사용하여 큰 HTML 파일을 PDF로 변환합니다. 매우 (XHTMLRenderer + iText보다 HTML을 PDF로 변환하는보다 효율적인 방법
num instances bytes class name
1: 1344539 776639912 [B
2: 1798853 301253344 [C
3: 535059 72768024 org.xhtmlrenderer.render.InlineLayoutBox
4: 762761 52412032 [Ljava.lang.Object;
5: 1519522 48624704 java.lang.String
6: 1149491 45979640 com.someco.p.d
7: 203533 38674984 [I
8: 216490 31313568 <constMethodKlass>
9: 216490 29455216 <methodKlass>
10: 387065 24772160 org.xhtmlrenderer.render.InlineBox
11: 23732 23915216 <constantPoolKlass>
12: 727350 23275200 java.awt.Rectangle
13: 243878 23095936 [Ljava.util.HashMap$Entry;
14: 147045 22350840 org.xhtmlrenderer.render.LineBox
15: 667914 21373248 java.util.HashMap$Entry
16: 855194 20524656 java.util.concurrent.LinkedBlockingQueue$Node
17: 23732 18543256 <instanceKlassKlass>
18: 537890 17212480 org.xhtmlrenderer.css.style.derived.RectPropertySet
19: 688836 16532064 org.xhtmlrenderer.layout.PaintingInfo
20: 688836 16532064 java.awt.Dimension
21: 264061 15254448 <symbolKlass>
22: 268028 15009568 org.xhtmlrenderer.render.InlineText
분명히, 이것은로 인해 일어난 : 이것은 히스 덤프입니다
This is a jstack dump:
02aaabc585000 nid=0x3af7 runnable [0x00002aaaf0269000]
java.lang.Thread.State: RUNNABLE
at java.awt.geom.Path2D$Double.rectCrossings(Path2D.java:1288)
at java.awt.geom.Path2D.intersects(Path2D.java:2290)
at java.awt.geom.Path2D.intersects(Path2D.java:2314)
at org.xhtmlrenderer.layout.BoxCollector.intersectsAggregateBounds(BoxCollector.java:90)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:121)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:139)
at org.xhtmlrenderer.layout.BoxCollector.collect(BoxCollector.java:46)
at org.xhtmlrenderer.layout.Layer.paint(Layer.java:314)
at org.xhtmlrenderer.pdf.ITextRenderer.paintPage(ITextRenderer.java:384)
at org.xhtmlrenderer.pdf.ITextRenderer.writePDF(ITextRenderer.java:348)
at org.xhtmlrenderer.pdf.ITextRenderer.createPDF(ITextRenderer.java:315)
at org.xhtmlrenderer.pdf.ITextRenderer.createPDF(ITextRenderer.java:246)
: 오늘, 우리의 개발 환경에서 모든 자원을 게걸스럽게 사용에서 그것을 렌더링 관리 , 매우) 큰 HTML 파일을 변환합니다. HTML을 "화면"으로 렌더링하지 않고 큰 HTML 파일을 변환하지 못하도록하거나 HTML을 PDF 으로 변환하는보다 효율적인 방법을 찾으려면 처음에는 (이것은 XHTMLRednerer가 기본적으로하는 것입니다) .
웹에서 인터넷 검색 및 검색은 좋은 대안을 제시하지 못했습니다. 그들은 우리가 신뢰할 수있는 것을 모르는 일부 스케치 회사에 의해 모두입니다. 누구든지 대안을 염두에두고 있습니까? HTMLWorker로 iText를 함께 제공하는 데 사용
몇 가지 프로젝트에서 [wkhtmltopdf] (http://code.google.com/p/wkhtmltopdf/)를 성공적으로 사용했습니다. 그럴 가치가 있니? – Viccari
wkhtmltopdf +1, 잘 작동합니다. – btantlinger
이것은 Java 도구가 아니며 외부 바이너리입니다. 많은 바이너리가 있지만 순수한 자바 솔루션을 찾고 있습니다. – dansch