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 文档的文档属性表截图。
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。右击文档并选择文档属性选项,如下所示。
以下方法为文档属性窗口,你可以观察到文档的所有属性均设置为指定的值。
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