![将各种 PDF 文件中的页面提取到新的 PDF 文件中](https://linux22.com/image/788241/%E5%B0%86%E5%90%84%E7%A7%8D%20PDF%20%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E9%A1%B5%E9%9D%A2%E6%8F%90%E5%8F%96%E5%88%B0%E6%96%B0%E7%9A%84%20PDF%20%E6%96%87%E4%BB%B6%E4%B8%AD%20.png)
从
a.pdf
,我想要第 2 页和第 5 页b.pdf
,第 3 和 4 页c.pdf
,第 7、8 和 9 页
复制到新的 PDF 文件中。所有输入的 pdf 文件长度均为十页。我正在使用 bash,并计划在未来几年内制作许多这样的文档(使用不同的输入文件和不同的页面)。最好的方法是什么?
答案1
使用 poppler 实用程序pdfseparate
和pdfunite
:
#! /usr/bin/env bash
input_filename_1="a.pdf"
input_filename_2="b.pdf"
input_filename_3="c.pdf"
output_filename="of.pdf"
pdfseparate -f 2 -l 2 "$input_filename_1" if_1_%03d.pdf 2>/dev/null
pdfseparate -f 5 -l 5 "$input_filename_1" if_1_%03d.pdf 2>/dev/null
pdfseparate -f 3 -l 4 "$input_filename_2" if_2_%03d.pdf 2>/dev/null
pdfseparate -f 7 -l 9 "$input_filename_3" if_3_%03d.pdf 2>/dev/null
ls -l if_*_*.pdf
pdfunite if_1_*.pdf if_2_*.pdf if_3_*.pdf "$output_filename" 2>/dev/null
ls -l "$output_filename"
rm -f if_*_*.pdf