个性化阅读
专注于IT技术分析

PDFBox处理元数据

本文概述

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

PDF文档包含以下属性-

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

PDFBox提供PDDocumentInformation类, 用于设置文档属性。此类具有一组setter和getter方法。 Setter方法用于设置文档属性的值, 而getter方法用于检索该值。

使用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 keyword list)-此方法用于设置关键字的值。
  6. setCreationDate(Calander date)-此方法用于设置创建PDF文档的值。
  7. setModificationDate(Calander date)-此方法用于设置PDF文档修改的值。

例-

本示例说明了如何向PDF文档添加诸如Author, Title, Date, Subject等属性。

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 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("srcmini");
	
	// 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("srcmini02.com"); 
	
	//Saving the document 
	doc.save("/eclipse-workspace/blank.pdf");

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

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

输出

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

PDFBox处理元数据

使用getter()方法-

PDDocumentInformation类的重要获取方法如下:

  1. getAuthor()-此方法用于检索作者名称的值。
  2. getTitle()-此方法用于检索文档标题名称的值。
  3. getCreator()-此方法用于检索文档创建者名称的值。
  4. getSubject()-此方法用于检索PDF文档的”主题”名称的值。
  5. getKeyword()-此方法用于检索PDF文档的Keyword值。
  6. getCreationDate()-此方法用于检索PDF文档的创建日期的值。
  7. getModificationDate()-此方法用于检索PDF文档的修改日期的值。

例-

本示例说明了如何向PDF文档添加诸如Author, Title, Date, Subject等属性。

import java.io.File; 
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument; 
import org.apache.pdfbox.pdmodel.PDDocumentInformation;

public class DocumentProperties {	
	public static void main(String[] args)throws IOException {
				
		//Loading an existing document 
	      File file = new File("/eclipse-workspace/blanck.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文档的所有属性, 这些属性可以在以下输出中显示。

PDFBox处理元数据
赞(0)
未经允许不得转载:srcmini » PDFBox处理元数据

评论 抢沙发

评论前必须登录!