调整PDF画布最大页面大小

Cre*_*ine 5 pdf shell command-line-interface ghostscript pdftk

我有一个PDF文档,其中所有页面大小都不同.我想将每个页面大小(也就是画布)调整为文档中找到的最大宽度和最大高度,然后将其居中.

我已经习惯了pdftkGhostscript,但如果它更好,我可能会考虑其他一些FOSS工具.

怎么做?谢谢你提前.

Hug*_* M. 0

我已经分享了 pdfjam 脚本,所以我想我应该尝试一下。

我有一个使用pdfinfoand的脚本pdfjam(警告:这是基于 pdflatex 的,它是一个大包,有几百 MB):

#!/bin/bash

pdf=$1

nb_pages=$(pdfinfo "$pdf" | grep ^Pages: | cut -f2 -d:)
echo "Found $nb_pages pages in document"

# Get page sizes as string of width:height values in points (ie "2380:3368 3368:2380 1684:2380 ...")
page_sizes=$(seq $nb_pages | while read p; do pdfinfo -f $p -l $p "$pdf" | grep -e '^Page.* size:' | awk '{print $4,$6}'; done)
echo "Page sizes: $page_sizes"

max_width=$(echo $page_sizes | tr ' ' '\n' | cut -f 1 -d: | sort -n | tail -n 1)
echo "Max width: $max_width"

max_height=$(echo $page_sizes | tr ' ' '\n' | cut -f 2 -d: | sort -n | tail -n 1)
echo "Max height: $max_height"

# Run pdfjam on source pdf and set page size, it will center each page
set -x
pdfjam --suffix fixed "$pdf" --papersize "{${max_width}pt,${max_height}pt}"
Run Code Online (Sandbox Code Playgroud)

它有效(我在本页上找到的“output.pdf”上尝试过),但是(至少在我的系统上)我发现可以传递给--papersize参数的内容是有限的。如果 pdfjam 步骤对您来说失败,您可以尝试手动选择减小的尺寸(保留比例),然后重试该命令。

希望这可以帮助。