使用itext5做html轉pdf不全問題

        我們項目文書全部是PDF格式,生成的方法是將html文本轉換成PDF,使用iText5中的XmlWorker小組件,具體步驟如下:



 

        用着一直都非常順利,後臺自動生成,非常快速、穩定、方便,可是就在去年出現了一個嚴重問題,當文書頁數較多時,比如有10頁,只會生成錢2頁,後面被截斷了。

        去年解決了但是沒有記錄,前兩天又出現了,生成一部分文書,後面內容沒了,又花了不少時間解決。
        經過反覆測試html文檔,最終確定了這個問題原因,由於XmlWorker對css支持不全,爲了讓pdf中的表格邊框一樣粗細,我們給每個td加了0.1mm的邊框,這樣內部的表格線是0.2mm,又在整個table最外層套了一個td,這樣外部表格線也是0.2mm。
        問題就出在當一個td跨頁顯示時,比如跨了1整頁以上,裏面內容又有自動高度的td,而且到本頁結束時沒有對齊(比如一行2cm,1cm一半在上一頁,1cm在下一頁)時,後面的內容有時無法生成。
        解決辦法就是把外邊嵌套的td去掉就好了,這樣導致表格線粗細不一致,不過打印出來0.1mm和0.2mm區別不太大,pdf放大才可以發現,暫時能滿足需要。
     
        我在網上查到也有人碰到類似問題,剛剛好上一頁有本條的一部分數據,剛剛好下一頁頁頭又一部分本條數據,剛剛好設置了不在一頁全部顯示,剛剛好下一頁數據高度有問題,就會這樣,也有說因爲setSplitRows這個方法確實會丟棄數據,不知道算不算XmlWorker的bug,希望有解決過這個問題的大師給我留言,教教我解決辦法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章