Scientist working in the Center for Computational Science & e-Systems, Japan Atomic Energy Agency.

Spotted an error on this site?
Corrections appreciated, please email alex (at) alexmalins.com or leave a comment.

Posts tagged "ocr"

Converting a scanned TIFF document to PDF and creating text searchable PDFs

You can follow these steps to create a text searchable PDF document if your scanner only outputs TIFF files. If your scanner creates PDF files but doesn’t perform OCR to make text searchable, skip to the last step.

Convert TIFF to PDF

ImageMagick comes with a command line tool magick to do this.

magick convert scanned.tiff scanned.pdf

Executing this command creates a PDF file from a TIFF created by a scanner.

Optional: Rotate the PDF Pages

Sometimes the scanned pages will need rotating to the correct orientation. Use PDFtk to rotate the pages. Rotating all the pages in the scanned PDF by 90º anti-clockwise is achieved with the following command:

pdftk scanned.pdf cat 1-endwest output rotated.pdf

Individual pages can be selected and rotated as necessary, see PDFtk examples.

Perform Optical Character Recognition

For this step I resort to a copy of Acrobat Pro.

It would have been nice if I had succeeded in achieving good quality output for this step using open source software. Solutions do exist, mainly using Tesseract to do OCR and then forming a new PDF file with a text searchable layer hidden underneath the scanned images. See e.g. Voelkel’s and OCRmyPDF solutions.

However despite reasonable stabs, for various reasons I couldn’t succeed with either. The quality of the OCR output I was getting from Tesseract was lower than Acrobat. Also Acrobat offers the advantage that it performs small rotations to the pages to make sure the text is horizontal. So eventually I gave up on the open source route and now use Acrobat.

Note Acrobat can perform OCR on any PDF file. This is very useful for making old journal articles text searchable if the download offered by the publisher is not.


[Edit: 24 August 2018 – Updated ImageMagick command “convert” to “magick convert”]

Remove pesky PDF title pages and other PDF tricks


PDFtk command to remove a title page

Taking out pages from PDF files, binding PDFs together, and removing PDF security. Here are a couple of free programmes to perform these tasks.

Taking out pages from a PDF

Sometimes PDFs contain a title page or blank pages that you might want to remove. PDFtk Server is a useful command line tool that can take pages out from a PDF file. To remove the title page from a PDF file, run the following command:

pdftk input.pdf cat 2-end output output.pdf

Set the pages you want to maintain within the document after the cat command, and change input.pdf and output.pdf to suit.

Merging PDF files

You may wish to combine a journal article with its supplementary information, or with comment letters and author responses. Again PDFtk can do this. To combine two pdf files into one:

pdftk input1.pdf input2.pdf cat output combined.pdf

PDFtk can also perform a host of other useful tasks – see its examples page.

Removing PDF Security

Sometimes PDF files come with encryption settings that prevent you from doing the above, or from performing OCR on the document. I find that QPDF works well for removing the security settings, even if you do not know the PDF password. To remove the security settings from a file run:

qpdf --decrypt input.pdf output.pdf

However QPDF does not always succeed. An alternative is to use a PDF printer driver to ‘print’ an unencrypted PDF. Examples of such software for Windows include CutePDF, Bullzip, PDFCreater etc. Preview on Mac will also ‘Export as PDF’. Ghostscript can also perform this task:

gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=output.pdf -c 
.setpdfwrite -f input.pdf

More Powerful Manipulation of PDFs

The python package pyPdf can be used to perform PDF file operations with the benefit of easy scripting ability. For instance when merging many hundreds of PDF sections of a larger document, each with a filename describing one part of the document (front matter, initial pages with Roman numerals, main pages…), I wrote a python script to merge the files in the correct order.

Edit 9th June 2015

Added ghostscript command to print to a new PDF file.