delete pages
#!/bin/bash# 检查 pdftk 是否安装
if ! command -v pdftk &> /dev/null
thenecho "pdftk 未安装,请先安装 pdftk。"exit 1
fi# 检查是否提供了 PDF 文件作为参数
if [ $# -ne 1 ]; thenecho "用法: $0 <input_pdf_file>"exit 1
fiinput_file=$1# 检查输入文件是否存在
if [ ! -f "$input_file" ]; thenecho "输入的 PDF 文件 $input_file 不存在。"exit 1
fi# 获取总页数
total_pages=$(pdftk "$input_file" dump_data | grep "NumberOfPages" | awk '{print $2}')# 提示用户输入要去除的页面
read -p "请输入要去除的页面(可以是单个页码或用逗号分隔的多个页码,如 3 或 3,5): " pages_to_remove# 生成页面范围
page_range=""
for ((i = 1; i <= total_pages; i++)); doskip=falsefor page in $(echo $pages_to_remove | tr ',' ' '); doif [ "$i" -eq "$page" ]; thenskip=truebreakfidoneif [ "$skip" = false ]; thenif [ -z "$page_range" ]; thenpage_range="$i"elsepage_range="$page_range $i"fifi
done# 执行 pdftk 命令
output_file="${input_file%.*}_removed.pdf"
pdftk "$input_file" cat $page_range output "$output_file"
echo "已生成去除指定页后的文件: $output_file"
divide pages
#!/bin/bash# 检查 pdftk 是否安装
if ! command -v pdftk &> /dev/null
thenecho "pdftk 未安装,请先安装 pdftk。"exit 1
fi# 检查是否提供了 PDF 文件作为参数
if [ $# -ne 1 ]; thenecho "用法: $0 <input_pdf_file>"exit 1
fiinput_file=$1# 检查输入文件是否存在
if [ ! -f "$input_file" ]; thenecho "输入的 PDF 文件 $input_file 不存在。"exit 1
fi# 获取 PDF 文件的总页数
total_pages=$(pdftk "$input_file" dump_data | grep "NumberOfPages" | awk '{print $2}')# 计算分割的组数
groups=$(( (total_pages + 49) / 50 ))# 进行分割
for ((i = 1; i <= groups; i++)); dostart_page=$(( (i - 1) * 50 + 1 ))end_page=$(( i * 50 ))if [ $end_page -gt $total_pages ]; thenend_page=$total_pagesfioutput_file="${input_file%.*}_${start_page}-${end_page}.pdf"pdftk "$input_file" cat $start_page-$end_page output "$output_file"echo "已生成文件: $output_file"
done
merge pages
#!/bin/bash# 检查 pdftk 是否安装
if ! command -v pdftk &> /dev/null
thenecho "pdftk 未安装,请先安装 pdftk。"exit 1
fi# 初始化文件列表
file_list=""# 生成文件列表
for i in $(seq 1 50 700); dostart=$iend=$((i + 49))if [ $end -gt 700 ]; thenend=700fifile="z-$start-$end.pdf"if [ -f "$file" ]; thenfile_list="$file_list $file"elseecho "文件 $file 不存在,跳过。"fi
done# 合并文件
if [ -n "$file_list" ]; thenpdftk $file_list cat output merged.pdfecho "PDF 文件合并完成,合并后的文件名为 merged.pdf。"
elseecho "没有找到有效的 PDF 文件进行合并。"
fi