Recently I inherited an old Kindle reader and wanted to use it to read academic papers. The problem with most of these kind of papers is that they are formatted into 2 columns.
This is impossible to read on a Kindle as is so I was hunting around for a solution that’s relatively easy and if possible free. I tried a number of different payed trial options and wasn’t satisfied with the quality of the output and the bloated programs (one was just shy of 1 GB!).
I was very happy to find a simple command line option (there are some GUI extensions for it but I didn’t try them) called K2pdfopt
, which can be found here.
Conversion:
Like other command line tools I like to use (e.g. ffmpeg, imagemagick, youtube-dl, etc. – I converted the figures in this post from pdf to png using convert
, which is part of imagemagick) it is focused on doing one thing but doing it extremely well. It optimizes pdf files for e-readers! So let’s have a look at what it can do.
Here is what the end result looks like:
And here is the command that got us there:
k2pdfopt -dpi 300 -vb 2 -fc- -om 0.2 /path/to/file.pdf
Let’s break it down…
-dpi 300
set pixels per inch of output screen. The higher the number is here, the larger the text will be in the final pdf (see examples below).
-vb 2
controls how and when regions of text are broken up into separate regions.
-fc-
do not “fit to column”. The -
here negates the option to fit the text to the width of the e-reader. This is likely the most important setting here since by default this is turned on! If we forget to negate this setting, the -dpi
setting from above will be ignored and the default dpi for the e-reader will be used.
-om 0.2
sets the white space “output margin” in inches around the text. This pulls the text away from the edges of the screen and the overall text feels less cramped.
There are a ton of other options and use cases for this tool. For a full set of options see http://www.willus.com/k2pdfopt/help/options.shtml
Hopefully this will be a viable option for reading some papers on the go without having to deal with paper copies… time will tell!
Before we call it a day, here are a couple of examples to show how the -dpi
option changes the output: