I am trying to import a group of PDFs that I have downloaded (it is in the realm of 1,000+). They are a group of doctoral dissertations that I'm trying to automatically extract bibliographic information from. They open perfectly in Preview and Adobe Acrobat Reader. Unfortunately, when I go to Import[]
them, I receive the following errors like so:
Import["1997-01.pdf","Elements"]
Import::general: Expected cross reference table >>
Import::general: Expected cross reference table >>
Import::general: Could not find document trailer >>
General::stop: Further output of Import::general will be suppressed during this calculation. >>
I have never encountered this with Elements
before, which is normally my first step in figuring out how to tackle a file. The same holds for Plaintext
, etc. If I Import["1997-01.pdf","Text"]
it generates a file akin to this:
%PDF-1.2
%BHIL-SC:0014503155,00391,00004,00008,00399,00790,00004,00004,00009,00400,00791,00004,00004,00010,00401,00792,00004 ... etc. etc.
The file itself is downloaded from an online repository, however, but is of high quality.
My end goal is to try TextRecognize[]
on it, but I cannot even get to that stage. Does Mathematica offer any workarounds for PDFs like this? FWIW, the PDF claims that I have full permissions to edit, alter, etc., but there is no built-in text layer.
--- Edited to Clarify ---
The PDF is version 1.2. It is an image layer, not a text layer. Hope that this helps!
Answer
If it's really scanned images, then you could try this:
pages = Import["yourfile.pdf", {"PDF", "Images"}]
Otherwise, I'd suggest running the file through ghostscript
or another distiller to clean up the potentially malformed PDF code first. The command would look like this:
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=newfile.pdf badfile.pdf
Edit
Since you mentioned that you're on Mac OS X and also appear to be able to view the PDF file in Preview.app, there is an even simpler way:
If you're on Lion: Open the PDF in Preview, and export it as multipage TIFF
. This can be done under the File > Export
menu. The resulting file can be imported in Mathematica and yields a list of images.
Another possible approach that works for all OS X versions is to open the PDF in Preview and print it to a file. With that method, you could also select only the pages you really need by highlighting them in the Thumbnail view, and then choosing File > Print Selected Pages...
. The PDF-printed file would hopefully have been processed to get rid of the errors.
Comments
Post a Comment