Rescaling a PDF File

I had a PDF file which I wanted to print with multiple pages per sheet. But the margins were so big that a lot of paper would have gone to waste.

I couldn’t just select the text, copy it and format it to my liking. The file is not scanned, so it’s still a mystery to me why the extracted text turns out garbled.

The solution I found was the pdfrescale script (via here). It uses some kind of latex magic to scale the entire PDF by whatever factor you want. All the needed dependencies should by installed by

sudo aptitude install pdftk pdfjam

If you know of an easier solution, I’d be interested to hear about it!

pdfrescaled.png

4 Responses to Rescaling a PDF File

  1. gr8dude says:

    Thanks for sharing this, I might need this later. In the past I remember encountering a similar problem.

    The text was copy/paste’able, but it would come up in unreadable characters when pasted elsewhere. It was happening because there were non-standard characters there (accented letters, or umlauts).

    This was happening on a Windows box; I found an ugly solution in the end, but I forgot what it was :-)

  2. Constantin says:

    Although the text did contain Romanian diacriticals, an entire page of copied text, when pasted, amounted to only a few scrambled characters. I do not know where the issue is
    1. the file is not DRM’d
    2. it is not scanned, since it weighs little and zooms well
    3. on Linux (KPDF) I get scrambled characters, on Windows (acrobat reader) it doesn’t allow me to select text at all!

  3. Swaprava says:

    I did the same on Karmic, somehow I see the following error.

    $ ./pdf-rescale.bat bhatnagar07adaptive-newton-based.pdf 1.20
    ./pdf-rescale.bat: line 1: @echo: command not found
    ./pdf-rescale.bat: line 2: syntax error near unexpected token `(‘
    ./pdf-rescale.bat: line 2: `rem Time-stamp:

    Please suggest a solution.

  4. Constantin says:

    Are you using the windows .bat file on a unix-based system? Use the pdfrescale script above (ported to unix) instead.