Jas*_*son 8 linux pdf pdf-generation tagged-pdf
我将处理单个PDF,每个PDF都是通过"合并"多个PDF来创建的.每个合并的PDF都有PDF部件开始显示的位置和书签.
有没有办法通过书签用脚本自动拆分?
我们只有书签来指示部件,而不是页码,因此我们需要从书签中推断出页码.Linux工具最好.
Tuo*_*mas 17
pdftk可用于拆分PDF文件并提取书签的页码.
要获取书签的页码
pdftk in.pdf dump_data
Run Code Online (Sandbox Code Playgroud)
并使您的脚本从输出中读取页码.
然后用
pdftk in.pdf cat A-B output out_A-B.pdf
Run Code Online (Sandbox Code Playgroud)
将A到B的页面转换为out_A-B.pdf.
脚本可能是这样的:
#!/bin/bash
infile=$1 # input pdf
outputprefix=$2
[ -e "$infile" -a -n "$outputprefix" ] || exit 1 # Invalid args
pagenumbers=( $(pdftk "$infile" dump_data | \
grep '^BookmarkPageNumber: ' | cut -f2 -d' ' | uniq)
end )
for ((i=0; i < ${#pagenumbers[@]} - 1; ++i)); do
a=${pagenumbers[i]} # start page number
b=${pagenumbers[i+1]} # end page number
[ "$b" = "end" ] || b=$[b-1]
pdftk "$infile" cat $a-$b output "${outputprefix}"_$a-$b.pdf
done
Run Code Online (Sandbox Code Playgroud)
你有像pdf-split这样构建的程序可以为你做到这一点:
A-PDF Split 是一个非常简单、快速的桌面实用程序,可让您将任何 Acrobat pdf 文件拆分为更小的 pdf 文件。它在如何分割文件以及如何唯一命名分割输出文件方面提供了完全的灵活性和用户控制。A-PDF Split 提供了多种分割大文件的替代方案 - 按页面、按书签以及按奇数/偶数页面。您甚至可以提取或删除 PDF 文件的一部分。A-PDF Split 还提供高级定义的分割,可以保存并稍后导入以用于重复的文件分割任务。A-PDF Split 代表了文件分割的终极灵活性,可满足各种需求。
A-PDF Split 适用于受密码保护的 pdf 文件,并且可以将各种 pdf 安全功能应用于拆分输出文件。如果需要,您可以使用 A-PDF Merger 等实用程序将生成的拆分文件与其他 pdf 文件重新组合,以形成新的复合 pdf 文件。
A-PDF Split 不需要 Adobe Acrobat,并生成与 Adobe Acrobat Reader 版本 5 及更高版本兼容的文档。
编辑*
如果您不想付费,还可以在这里找到一个免费的开源程序。