Mark Stephens Mark has been working with Java and PDF since 1999 and is a big NetBeans fan. He enjoys speaking at conferences. He has an MA in Medieval History and a passion for reading.

How to access PDF file metadata in Java

1 min read

JPedal Java PDF Library contains a large number of utilties to access information about or inside a PDF file. Here are the common Developer uses.

Get a page count

JPedal makes it very easy to scan the pages of a PDF file for text. This features is built into all examples so it also accessible from other examples or as part of the PdfUtilities class. Here is a simple example (Javadoc).
JPedal includes some very powerful features for text search including regular expressions.

PdfUtilities extract=new PdfUtilities("C:/pdfs/mypdf.pdf");
 //extract.setPassword("password");
 if (extract.openPDFFile()) {
      int pageCount=extract.getPageCount();    
 }
 
 extract.closePDFfile();

Access PDF page size and rotation

Every page in a  PDF document can have its own dimensions and rotation. MediaBox is the actual page size and CropBox is the visible page size (we recommend you always use CropBox.

PdfUtilities extract=new PdfUtilities("C:/pdfs/mypdf.pdf");
 //extract.setPassword("password");
 if (extract.openPDFFile()) {
      float[] pageDimensions=extract.getPageDimensions(pageNum, PageUnits.Inches, PageSizeType.CropBox););
 }
 
 extract.closePDFfile();

Detect if embedded fonts used in PDF Document

JPedal allows the user to see if embeddedFonts are used in the PDF document.

PdfUtilities extract=new PdfUtilities("C:/pdfs/mypdf.pdf");
 //extract.setPassword("password");
 if (extract.openPDFFile()) {
      boolean usesEmbeddedFonts=extract.hasEmbeddedFonts();    
 }
 
 extract.closePDFfile();

Access PDF Document properties

A PDF document can contain a set of pre-defined Document properties or an XML value containing any data.

PdfUtilities extract=new PdfUtilities("C:/pdfs/mypdf.pdf");
 //extract.setPassword("password");
 if (extract.openPDFFile()) {
      Map mapOfValuePairs=extract.getDocumentPropertyStringValuesAsMap();    
      String XMLStringData=extract.getDocumentPropertyFieldsInXML();
 }
 
 extract.closePDFfile();

The JPedal API provides a great deal of easy to use functionality with PDF handling. Are there any other additional features you would like to see?

Mark Stephens Mark has been working with Java and PDF since 1999 and is a big NetBeans fan. He enjoys speaking at conferences. He has an MA in Medieval History and a passion for reading.

Leave a Reply

Your email address will not be published. Required fields are marked *

IDRsolutions Ltd 2019. All rights reserved.