【发布时间】:2016-09-26 12:31:22
【问题描述】:
为什么每次我使用 PdfStamper 都会增加我签名的 pdf 的大小?
这是我的代码:
private static void test(String src, String pwd, String dest) throws Exception {
byte[] pwdByte = pwd != null ? pwd.getBytes() : null;
PdfReader r = null;
PdfStamper stp = null;
FileOutputStream fos = null;
try {
r = new PdfReader(src, pwdByte);
fos = new FileOutputStream(dest);
stp = new PdfStamper(r, fos, '\0', true);
} finally {
stp.close();
fos.close();
r.close();
}
}
如果我调用测试,生成的 pdf 会根据签名信息增加大小:
我的初始 pdf 有 LTV 标志,但我需要添加时间戳。我需要 addLtv() 一些 pdf,然后是 addLtvNoTs() 因为它是不同的 TSA。这使得在追加模式下调用两次 PdfReader 并且每次我这样做都会增加我的 pdf 大约 190kb。这意味着将其增加 380kb。 http://developers.itextpdf.com/question/how-enable-ltv-timestamp-signature
我已经测试了使用带有简单 sing 的 pdf 调用上述测试方法,每次我在生成的 pdf 上调用 test() 时,它每次都会增加 3.5kb(我认为是由于符号信息小)。
如果我没有添加任何更改,为什么 pdfstamper 会增加我的 pdf 大小?我怎样才能避免它? 390kb 这是一个问题,因为我需要放弃数千份 pdf 文件并存储它们。
我使用的是 itext 5.5.9
提前致谢!
【问题讨论】: