Because it turned out that people wanted to make PDF files accessible and extract content from PDF documents (and not just view them), Adobe added a feature called marked content. This allows the tagged PDF file to contain additional tags as information, preserving the structure of the text. However, this feature needs to be used in the creation of the PDF – otherwise the additional information is not there!
There is a very easy way to tell if the PDF file has been created in this way. Open the file in Acrobat Reader and look at the properties menu – the Tagged PDF menu option (bottom left entry on the advanced section) tells you if the PDF contains these extra tags. This file does not.
JPedal also contains a PDFUtilities class which allows you to programmatically check if the file is fully tagged according to the PDF specification (if it is not you may still be able to extract some structured content from it).
If you can create Tagged PDF, it is worth setting this on by default – the files are not much larger and it makes text extraction much more viable if you need it in the future.
There is a related article How to extract text from PDF files explaining how to extract XML from Structured PDf files with JPedal.
Are you a Developer working with PDF files?
|Free: The Developer's Guide to PDF|
|Convert PDF files to HTML|
|Use PDF Forms in a web browser|
|Convert PDF Documents to an image|
|Work with PDF Documents in Java|