如何使用itext7从PDF中提取附加文件?
我为itext5找到的示例代码都不再起作用了。
每个文件byte[]
将是我需要的,如下面的itext5示例所示:
PdfReader reader = new PdfReader(SRC);
Map<String, byte[]> files = new HashMap<String,byte[]>();
PdfObject obj;
for (int i = 1; i <= reader.getXrefSize(); i++) {
obj = reader.getPdfObject(i);
if (obj != null && obj.isStream()) {
PRStream stream = (PRStream)obj;
byte[] b;
try {
b = PdfReader.getStreamBytes(stream);
}
catch(UnsupportedPdfException e) {
b = PdfReader.getStreamBytesRaw(stream);
}
files.put(Integer.toString(i), b);
}
}
Thx / markus
答案 0 :(得分:1)
您正在使用暴力搜索附件,而不是通过查询目录中的嵌入文件和查询页面词典以获取附件注释。
无论如何,如果我将您的代码移植到iText 7,它将如下所示:
BLOCKA
BLOCKB
-CLASSB1
--CLASSB12
-CLASSSB13
--CLASSB4
--CLASSB5
我做的唯一更改是将流写入文件。