我发现这个问题很难措辞,也找不到一个在线解决方案。
我知道如何使用PDFTK使用以下脚本将大型PDF拆分为 * 单个 * 页面:
pdftk your_file.pdf burst output your_directory/page_%02d.pdf
字符串
但是现在我想每隔一页拆分PDF,这样每个新的PDF都有两(2)页(例如1 + 2页在一起,3 + 4页在一起,5 + 6页等)。
我知道这就像一个冠军,但我需要一些我可以从PowerShell执行。
我对替代方案/变通方案持开放态度,比如在单次爆发后将单页合并为两页。
6条答案
按热度按时间mo49yndu1#
这个PowerShell脚本将
1.使用pdftk获取页面数
1.在构建范围字符串的步骤中循环
1.使用范围提取到一个新的PDF与附加范围的基本名称(并存储在同一个文件夹)的页面。
更改前两个变量以适应您的环境。
字符串
已编辑,以处理可变的页面集并正确处理悬垂。
**再次编辑:**找到了一个更简单的方法来缩短最后一组页面。
示例输出
型
drnojrws2#
你可以使用
sejda-console
,它是在AGPLv3下开源的,可以从GitHub项目页面下载。您可以使用
splitbyevery
命令,每隔'n'页拆分一个给定的PDF文档,创建每个'n'页的文档。
在这种情况下,命令行将类似于:
sejda-console splitbyevery -n 2 -f /tmp/input_file.pdf -o /out_dir
个rqenqsqc3#
您可以使用cat关键字从所需页面生成文件。
字符串
可以添加一个bash脚本,以便更易于用途:
型
kcwpcxri4#
我发现Szakacs Peter的解决方案很棒,但bash脚本需要三个调整:从1开始
$COUNTER
,以便它引用PDF的第一页;在第四行添加双括号,以便(($COUNTER+1))
求值;另一个$COUNTER
使输出文件名唯一。最后一个bash脚本为我解决了这个问题:
字符串
然后保存为类似
burst2page.sh
的文件,执行chmod u+x burst2page.sh
使其可执行,然后使用./burst2page.sh
运行它xtfmy6hx5#
按任意页数拆分(作为第二个参数):例如
<script_filename>.sh <filename.pdf> <num_pages_per_output_file>
字符串
此外,输出文件名将有开始和结束页码附加到输入文件名,例如。
型
y3bcpkx16#
布拉德史密斯的脚本是好的,但它不会在这种形式下工作。当你没有定义$NUMBEROFPAGES,脚本抛出一个错误
script.sh: line 3: [: 1: unary operator expected
。我建议将其更改为:字符串