Mám soubor PDF, u kterého chci změnit velikost stránek; říkejme tomu file.pdf
. A dostal jsem další soubor PDF, který bude sloužit jako vzor pro file.pdf
; říkejme tomu model.pdf
.
Pro upřesnění:Chci file.pdf
stránky mají stejnou velikost jako model.pdf
stránky.
Pomocí pdfinfo
na model.pdf
Dostávám následující relevantní informace:
Tagged: no
Form: none
Pages: 22
Encrypted: no
Page size: 612 x 783 pts
Page rot: 0
MediaBox: 0.00 0.00 720.00 891.00
CropBox: 54.00 54.00 666.00 837.00
BleedBox: 54.00 54.00 666.00 837.00
TrimBox: 54.00 54.00 666.00 837.00
ArtBox: 54.00 54.00 666.00 837.00
File size: 3324788 bytes
Optimized: no
PDF version: 1.7
Opravdu nerozumím prvním dvěma sloupcům *Box
pole znamenají, ale při hledání na Googlu jsem dospěl k závěru, že mým cílem jsou poslední dva sloupce MediaBox
pole. Takže chci file.pdf
být 720x891
, a myslím, že jednotky jsou pts
.
Tak jsem našel tento nástroj s názvem pdfposter
který by měl být schopen změnit velikost stránek PDF, a udělal jsem to (všimněte si, že jsem již provedl převod z bodů na palce):
pdfposter -m10x12.375inch file.pdf new_file.pdf
Všechno jde dobře, ale když zkontroluji new_file.pdf
s pdfinfo
Chápu:
Tagged: no
Form: none
Pages: 32
Encrypted: no
Page size: 630.22 x 891 pts
Page rot: 0
MediaBox: 54.33 32.60 774.33 923.60
CropBox: 54.33 32.60 684.55 923.60
BleedBox: 54.33 32.60 684.55 923.60
TrimBox: 54.33 32.60 630.22 891.00
ArtBox: 54.33 32.60 630.22 891.00
File size: 3005203 bytes
Optimized: no
PDF version: 1.3
Zjevně se něco pokazilo, protože velikost stránek nového PDF je 774.33x923.60
a ne 720x891
; navíc první dva sloupce MediaBox
změněno z 0.00 0.00
na 54.33 32.60
a nemám ponětí proč nebo co to znamená.
Zkoušel jsem také použít pdfjam
ale pouze přidá více bílého místa k okrajům, zatímco obsah PDF zůstane nedotčen.
Moje otázka tedy zní:jak mohu změnit velikost mého file.pdf
na stránky model.pdf
.
Poznámka: Je pro mě velmi důležité, aby velikost PDF byla ve stejné kvalitě jako původní PDF.
Přijatá odpověď:
Můžete použít pdfjam s --papersize
argument pro nastavení výstupní velikosti papíru. Možná budete také muset použít --scale
a --offset
pokud chcete udělat více, než změnit velikost stránky a jejího obsahu dohromady.
pdfjam --papersize="$(LC_ALL=C pdfinfo model.pdf | awk '/^Page size:/ {printf "{%fbp,%fbp}", $3, $5}')" file.pdf new_file.pdf