[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: resizing PDF files with Ghostscript



On 2023-09-17, Greg Marks <gtmarks@gmail.com> wrote:
>
> I am trying to use Ghostscript to resize PDF files to letter page size,
> but on certain files the output is not the correct size.  As an example:
>
>    $wget https://gmarks.org/abrams_anh_pardo.pdf
>
>    $pdfinfo abrams_anh_pardo.pdf=20
>    ...
>    Page size:      539 x 737 pts
>    ...
>
>    $gs -o resized_file.pdf -sDEVICE=pdfwrite -dFIXEDMEDIA -dPDFFitPage -d
> DEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=792 -dBATCH -dSAFER abrams_a
> nh_pardo.pdf
>
>    $pdfinfo resized_file.pdf=20
>    ...
>    Page size:      579.224 x 792 pts
>    ...
>
 
It appears the output of pdfwrite has a MediaBox of 612x792 but a CropBox of
595.61x792, which must be the result of scaling A4 down to Letter and
centering that scaled down area on the page.

curty@einstein:~$ pdfinfo -box resized_file.pdf 
<snip>
Page size:      579.224 x 792 pts
Page rot:       0
MediaBox:           0.00     0.00   612.00   792.00
CropBox:           16.39     0.00   595.61   792.00
BleedBox:          16.39     0.00   595.61   792.00
TrimBox:           16.39     0.00   595.61   792.00
ArtBox:            16.39     0.00   595.61   792.00
File size:      26538 bytes
Optimized:      no
PDF version:    1.7

I'm unaware of another way of "fixing" this but the following kludge (unless
you can tell your printing process to use MediaBox and ignore CropBox).

 sed -e "/CropBox/,/]/s#.# #g" resized_file.pdf 

curty@einstein:~$ pdfinfo -box resized_file.pdf 
<snip>
Page size:      612 x 792 pts (letter)
Page rot:       0
MediaBox:           0.00     0.00   612.00   792.00
CropBox:            0.00     0.00   612.00   792.00
BleedBox:           0.00     0.00   612.00   792.00
TrimBox:            0.00     0.00   612.00   792.00
ArtBox:             0.00     0.00   612.00   792.00
File size:      26538 bytes
Optimized:      no
PDF version:    1.7



Reply to: