使用iTextJava库提取PDF元数据
我正在尝试使用Java库获取PDF文件的所有XMP元数据流,以操作PDF文件iText。我写的代码是:使用iTextJava库提取PDF元数据,java,pdf,itext,metadata,itext7,Java,Pdf,Itext,Metadata,Itext7,我正在尝试使用Java库获取PDF文件的所有XMP元数据流,以操作PDF文件iText。我写的代码是: package iTextExamples; import java.io.FileOutputStream; import java.io.IOException; import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfReader; public class ReadMetadata
package iTextExamples;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
public class ReadMetadata {
public static void main(String[] args) throws IOException {
String src = "C:\\Path\\PDF123.pdf";
PdfReader reader = new PdfReader(src);
PdfDocument doc = new PdfDocument(reader);
System.out.println(doc.getXmpMetadata());
reader.close();
}
}
我得到的结果是NULL,我不知道为什么。与获取NULL的问题无关,但是
doc.getXmpMetadata()
返回一个字节数组。因此,您将无法使用打印其内容
System.out.println(doc.getXmpMetadata());
相反,您必须执行以下操作:
byte[]xmp=doc.getXmpMetadata();
字符串xmpString=新字符串(xmp,StandardCharsets.UTF_8);
System.out.println(xmpString);
关于空值问题:
我假设您正在尝试获取文档级XMP元数据。确保您的PDF文件实际上包含XMP元数据流。如果不是,则应为null
您可以使用能够显示XMP的PDF查看器或PDF对象查看器进行验证。XMP元数据流位于文档目录
字典的元数据
条目中: