user1812457
user1812457

Reputation:

Scale to fit and resize page

I am using (PDF)LaTeX to make a document, and I also need to embed already existing PDF documents in it. The problem is that I have PDF documents in several different page sizes (letter, a4, etc) and I want to compile all of them into a single b5 PDF document.

If I use the pdfpages package from CTAN, all hyperlinks from the original PDFs are removed. So I tried to do it with GhostScript.

This sounds like something normal to do but I have failed to find a working solution. I have, in the meanwhile, read a few question and answers, but failed to figure out what I am doing wrong and what I am missing.

This doesn't seem to address my problem of scaling.

Neither does that.

This seems to go in the right direction but I couldn't make use of the information :-(.

To make the problem easier, let's just try to resize a single PDF so that:

Sounds easy, and it is easy to do, for example with pdfjam:

pdfjam --outfile b5-foo.pdf --paper b5paper foo.pdf

Now the problem with this is that pdfjam throws away hyperlinks. From its website:

A potential drawback of pdfjam and other scripts based upon it is that any hyperlinks in the source PDF are lost.

This must be because it seems to use pdfpages mentioned above.

Unlike pdfjam, GhostScript keeps hyperlinks. However, it either:

This is what I have installed:

$ gs --version
9.21

(Installed on Linux)

This is how I can use GhostScript to crop the content:

gs -dBATCH -dNOPAUSE \
    -sDEVICE=pdfwrite -dFIXEDMEDIA -sPAPERSIZE=isob5 \
    -o b5-foo.pdf foo.pdf

... and here is how I can use -dPDFFitPage to scale the content but also keep the aspect ratio of the original page size:

gs -dBATCH -dNOPAUSE \
    -sDEVICE=pdfwrite -dFIXEDMEDIA -sPAPERSIZE=isob5 -dPDFFitPage \
    -o b5-foo.pdf foo.pdf

To be even clearer: I seem to get a page that is scaled so that it would fit inside the b5 I am asking for, but it is not b5: it still has the H/W ratio the original (letter) had!

I'd be happy if this can be done just using switches but if I need to use PostScript that's perfectly fine.

Upvotes: 5

Views: 7275

Answers (1)

user1812457
user1812457

Reputation:

The solution seems to be to use -dPSFitPage instead of -dPDFFitPage. This might have something to do with the PDF files that I am trying to resize. Unfortunately, I cannot share those :-(. When I tried to reproduce this with files that I generated and the problem does not reproduce. I don't know why this is or how I should have known it.

To summarize, using PDF files for both input and output:

  • -dFitPage and -dPDFFitPage give me scaled pages with the original aspect ratio
  • -dPSFitPage gives me scaled content on the page size I request with -sPAPERSIZE="$PAPERSIZE"

This seems to go against what the documentation says.

Upvotes: 4

Related Questions