itext7 批量生成pdf遇到的異常及分析和處理

2021-07-22 22:41:59 字數 759 閱讀 2126

能正常生成第乙個pdf檔案,然後之後生成的pdf都會丟擲以下異常:

com.itextpdf.kernel.pdfexception: pdf.inderect

.object

.belong

.to.other

.pdf

.document

.copy

.object

.to.current

.pdf

.document

我們定位到原始碼出現異常的位置:

if (document != null && !indirectreference.getdocument().equals(document))
由於當前的document的物件和indirectreference(間接引用)的document物件不一致,導致異常丟擲,問題的源頭找到了,現在需要找到是什麼導致兩個document不一致。

猜測:第乙個document物件沒有正常釋放。

**中什麼會導致document的物件釋放失敗呢?看**,我將字型寫成了單例模式,當時想著是由於中文字型需要地方都需要用到,為了避免每次都new乙個新的。可能是由於字型無法釋放才導致的,做法是將單例模式取消,再執行**就不會再出現以上的異常了。

public

static pdffont cnfont = null;

這個問題折磨我挺長時間,希望對大家使用itext7的過程中有所幫助。

Java中利用IText7生成PDF

下面介紹幾種itext7生成pdf的一些頁面元素的方法 官網1 新增 import com.itextpdf.kernel.font.pdffont import com.itextpdf.kernel.font.pdffontfactory import com.itextpdf.kernel.p...

itext7填充PDF模板(二)填充pdf模板

本篇文章主要講解的是如何採用itext7進行模板填充。private static void fillparam pdfreader pdfreader,pdfwriter pdfwriter,mapmap,listpdfpositons throws malformedurlexception c...

C 筆記 itext7將HTML轉為PDF

從nuget搜尋安裝 itext7.pdfhtml 安裝時根據提示一併安裝5個依賴項 itext7 microsoft.csharp portable.bouncycastle common.logging common.logging.core 由於itext7與itext5在結構和用法上有些區別...