PDFBox 处理元数据

PDFBox 处理元数据

PDF 文档有许多属性。这些属性提供与 PDF 文档相关的元数据信息。由于某些字段是可选的,因此无法保证所有 PDF 文件都包含我们需要的所有元数据。

PDF 文档包含以下属性:

文档名称 描述
Title 它用于设置 PDF 文档的标题。
Author 用于设置PDF文档的作者姓名。
Subject 它用于指定文档的主题。
Application 它用于设置文档的应用程序。
Keyword 它用于创建关键字列表,我们可以从中搜索文档。
Created 它用于设置创建文档的日期。
Modified 用于设置文档的修改日期。
Producer 用于设置文档的生产者名称。

PDFBox 提供了用于设置文档属性的PDDocumentInformation 类。这个类有一套setter和getter方法。setter 方法用于设置文档属性的值,getter 方法用于检索该值。

PDDocumentInformation Setter() 方法

PDDocumentInformation 类的重要 Setter 方法如下:

  1. setAuthor(String author):此方法用于设置作者姓名的值。
  2. setTitle(String title):此方法用于设置 PDF 文档标题的值。
  3. setCreator(String creator):此方法用于设置PDF 文档创建者的值。
  4. setSubject(String subject):此方法用于设置指定PDF 文档主题的值。
  5. setKeywords(String Keywords list):该方法用于设置关键字的值。
  6. setCreationDate(Calander date):此方法用于设置创建PDF 文档的值。
  7. setModificationDate(Calander date):该方法用于设置PDF文档的修改值。

PDDocumentInformation Setter() 方法 示例

此示例说明如何向 PDF 文档添加作者、标题、日期、主题等属性。

package com.yiidian;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentInformation;
import org.apache.pdfbox.pdmodel.PDPage;

import java.io.IOException;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class DocumentProperties {
    public static void main(String[] args) throws IOException {

        //Creating PDF document object  
        PDDocument doc = new PDDocument();

        //Creating a blank page  
        PDPage blankPage = new PDPage();

        //Adding the blank page to the document
        doc.addPage(blankPage);

        //Creating the PDDocumentInformation object
        PDDocumentInformation pdd = doc.getDocumentInformation();

        //Setting the author of the document
        pdd.setAuthor("yiidian");

        // Setting the title of the document
        pdd.setTitle("My Document");

        //Setting the creator of the document
        pdd.setCreator("SSSIT");

        //Setting the subject of the document
        pdd.setSubject("PDF Example");

        //Setting the created date of the document
        Calendar date = new GregorianCalendar();
        date.set(2018, 5, 7);
        pdd.setCreationDate(date);

        //Setting the modified date of the document
        date.set(2018, 6, 5);
        pdd.setModificationDate(date);

        //Setting keywords for the document
        pdd.setKeywords("Java, example, my pdf");

        //Setting Producer for the document
        pdd.setProducer("yiidian.com");

        //Saving the document
        doc.save("d:/blank.pdf");

        System.out.println("Properties added successfully to a PDF document.");

        //Closing the document
        doc.close();
    }
}  

成功执行上述程序后,它将从 PDF 文档中检索文本,如下面的输出所示。


 

PDDocumentInformation getter() 方法

PDDocumentInformation类的重要getter方法如下:

  1. getAuthor() :此方法用于检索Author name的值。
  2. getTitle() :此方法用于检索文档Title name的值。
  3. getCreator():该方法用于检索文档Creator name的值。
  4. getSubject() :此方法用于检索PDF 文档的主题名称的值。
  5. getKeyword():此方法用于检索PDF 文档的Keyword值。
  6. getCreationDate():此方法用于检索PDF 文档的创建日期值。
  7. getModificationDate() :此方法用于检索PDF 文档的修改日期值。

PDDocumentInformation getter() 方法示例

此示例说明如何向 PDF 文档添加作者、标题、日期、主题等属性。

package com.yiidian;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentInformation;

import java.io.File;
import java.io.IOException;

public class DocumentProperties {
    public static void main(String[] args) throws IOException {

        //Loading an existing document   
        File file = new File("d:/blank.pdf");
        PDDocument doc = PDDocument.load(file);

        //Getting the PDDocumentInformation object
        PDDocumentInformation pdd = doc.getDocumentInformation();

        //Retrieving the info of a PDF document
        System.out.println("Author of the PDF document is :" + pdd.getAuthor());
        System.out.println("Title of the PDF document is :" + pdd.getTitle());
        System.out.println("Subject of the document is :" + pdd.getSubject());

        System.out.println("Creator of the PDF document is :" + pdd.getCreator());
        System.out.println("Keywords of the PDF document are :" + pdd.getKeywords());

        System.out.println("Creation date of the PDF document is :" + pdd.getCreationDate());
        System.out.println("Modification date of the PDF document is :" + pdd.getModificationDate());

        //Closing the document
        doc.close();
    }
}  

成功执行上述程序后,它会检索 PDF 文档的所有属性,这些属性可以显示在以下输出中。

热门文章

优秀文章