Pdfbox 简明教程

PDFBox - Document Properties

像其他文件一样,PDF 文档也具有文档属性。这些属性是键值对。每个属性都提供有关文档的特定信息。

以下是 PDF 文档的属性 −

S.No.

Property & Description

1

File 此属性保存文件名。

2

Title 使用此属性,可以给文档设置标题。

3

Author 使用此属性,可以给文档设置作者的姓名。

4

Subject 使用此属性,可以指定 PDF 文档的主题。

5

Keywords 利用此属性,可以列出用来搜索文档的关键字。

6

Created 利用此属性,可以设置文件的创建时间。

7

Modified 利用此属性,可以设置文件的修改时间。

8

Application 利用此属性,可以设置文档的应用程序。

以下是 PDF 文档的文档属性表截图。

pdf properties

Setting the Document Properties

PDFBox 为您提供了名为 PDDocumentInformation 的类。此类包含一组 setter 和 getter 方法。

此类的 setter 方法用于将值设置给文档的各种属性,而 getter 方法用于检索这些值。

以下是 PDDocumentInformation 类的 setter 方法。

S.No.

Method & Description

1

setAuthor(String author) 此方法用于设置名为 Author 的 PDF 文档属性的值。

2

setTitle(String title) 此方法用于设置名为 Title 的 PDF 文档属性的值。

3

setCreator(String creator) 此方法用于设置名为 Creator 的 PDF 文档属性的值。

4

setSubject(String subject) 此方法用于设置名为 Subject 的 PDF 文档属性的值。

5

setCreationDate(Calendar date) 此方法用于设置名为 CreationDate 的 PDF 文档属性的值。

6

setModificationDate(Calendar date) 此方法用于设置名为 ModificationDate 的 PDF 文档属性的值。

7

setKeywords(String keywords list) 此方法用于设置名为 Keywords 的 PDF 文档属性的值。

Example

PDFBox 提供了一个名为 PDDocumentInformation 的类,此类提供了各种方法。这些方法可以将各种属性设置给文档并检索这些属性。

此示例演示了如何将属性(如 Author, Title, Date, and Subject )添加到 PDF 文档。此处,我们将创建名为 doc_attributes.pdf 的 PDF 文档,向其中添加各种属性,并将其保存在路径 C:/PdfBox_Examples/ 中。在名为 AddingAttributes.java 的文件中保存此代码。

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

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

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

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

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

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

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

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

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

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

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

      //Setting the created date of the document
      Calendar date = new GregorianCalendar();
      date.set(2015, 11, 5);
      pdd.setCreationDate(date);
      //Setting the modified date of the document
      date.set(2016, 6, 5);
      pdd.setModificationDate(date);

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

      //Saving the document
      document.save("C:/PdfBox_Examples/doc_attributes.pdf");

      System.out.println("Properties added successfully ");

      //Closing the document
      document.close();

   }
}

使用以下命令从命令提示符处编译并执行已保存的 Java 文件。

javac AddingAttributes.java
java AddingAttributes

执行时,上述程序将所有指定属性添加到文档中,并显示以下消息。

Properties added successfully

现在,如果您访问给定路径,您可以在其中找到创建的 PDF。右击文档并选择文档属性选项,如下所示。

document properties

以下方法为文档属性窗口,你可以观察到文档的所有属性均设置为指定的值。

properties menu

Retrieving the Document Properties

你可以使用 PDDocumentInformation 类提供的 getter 方法来检索文档属性。

下面是 PDDocumentInformation 类的 getter 方法。

S.No.

Method & Description

1

getAuthor() 此方法用于检索名为 Author 的 PDF 文件的属性的值。

2

getTitle() 此方法用于检索名为 Title 的 PDF 文件的属性的值。

3

getCreator() 此方法用于检索名为 Creator 的 PDF 文件的属性的值。

4

getSubject() 此方法用于检索名为 Subject 的 PDF 文件的属性的值。

5

getCreationDate() 此方法用于检索名为 CreationDate 的 PDF 文件的属性的值。

6

getModificationDate() 此方法用于检索名为 ModificationDate 的 PDF 文件的属性的值。

7

getKeywords() 此方法用于检索名为 Keywords 的 PDF 文件的属性的值。

Example

此示例演示如何检索现有 PDF 文件的属性。在此处,我们将创建一个 Java 程序并加载名为 doc_attributes.pdf 的 PDF 文件,它保存在路径 C:/PdfBox_Examples/ 中,并检索其属性。将此代码保存到名为 RetrivingDocumentAttributes.java 的文件中。

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

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

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

      //Loading an existing document
      File file = new File("C:/PdfBox_Examples/doc_attributes.pdf")
      PDDocument document = PDDocument.load(file);
      //Getting the PDDocumentInformation object
      PDDocumentInformation pdd = document.getDocumentInformation();

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

      System.out.println("Creator of the document is :"+ pdd.getCreator());
      System.out.println("Creation date of the document is :"+ pdd.getCreationDate());
      System.out.println("Modification date of the document is :"+
         pdd.getModificationDate());
      System.out.println("Keywords of the document are :"+ pdd.getKeywords());

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

使用以下命令从命令提示符处编译并执行已保存的 Java 文件。

javac RetrivingDocumentAttributes.java
java RetrivingDocumentAttributes

执行后,上述程序将检索文档的所有属性并按如下所示显示它们。

Author of the document is :Tutorialspoint
Title of the document is :Sample document
Subject of the document is :Example document
Creator of the document is :PDF Examples
Creation date of the document is :11/5/2015
Modification date of the document is :6/5/2016
Keywords of the document are :sample, first example, my pdf