delete pages
| #!/bin/bash |
| |
| |
| if ! command -v pdftk &> /dev/null |
| then |
| echo "pdftk 未安装,请先安装 pdftk。" |
| exit 1 |
| fi |
| |
| |
| if [ $# -ne 1 ]; then |
| echo "用法: $0 <input_pdf_file>" |
| exit 1 |
| fi |
| |
| input_file=$1 |
| |
| |
| if [ ! -f "$input_file" ]; then |
| echo "输入的 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++)); do |
| skip=false |
| for page in $(echo $pages_to_remove | tr ',' ' '); do |
| if [ "$i" -eq "$page" ]; then |
| skip=true |
| break |
| fi |
| done |
| if [ "$skip" = false ]; then |
| if [ -z "$page_range" ]; then |
| page_range="$i" |
| else |
| page_range="$page_range $i" |
| fi |
| fi |
| done |
| |
| |
| output_file="${input_file%.*}_removed.pdf" |
| pdftk "$input_file" cat $page_range output "$output_file" |
| echo "已生成去除指定页后的文件: $output_file" |
divide pages
| #!/bin/bash |
| |
| |
| if ! command -v pdftk &> /dev/null |
| then |
| echo "pdftk 未安装,请先安装 pdftk。" |
| exit 1 |
| fi |
| |
| |
| if [ $# -ne 1 ]; then |
| echo "用法: $0 <input_pdf_file>" |
| exit 1 |
| fi |
| |
| input_file=$1 |
| |
| |
| if [ ! -f "$input_file" ]; then |
| echo "输入的 PDF 文件 $input_file 不存在。" |
| exit 1 |
| fi |
| |
| |
| total_pages=$(pdftk "$input_file" dump_data | grep "NumberOfPages" | awk '{print $2}') |
| |
| |
| groups=$(( (total_pages + 49) / 50 )) |
| |
| |
| for ((i = 1; i <= groups; i++)); do |
| start_page=$(( (i - 1) * 50 + 1 )) |
| end_page=$(( i * 50 )) |
| if [ $end_page -gt $total_pages ]; then |
| end_page=$total_pages |
| fi |
| output_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 |
| |
| |
| if ! command -v pdftk &> /dev/null |
| then |
| echo "pdftk 未安装,请先安装 pdftk。" |
| exit 1 |
| fi |
| |
| |
| file_list="" |
| |
| |
| for i in $(seq 1 50 700); do |
| start=$i |
| end=$((i + 49)) |
| if [ $end -gt 700 ]; then |
| end=700 |
| fi |
| file="z-$start-$end.pdf" |
| if [ -f "$file" ]; then |
| file_list="$file_list $file" |
| else |
| echo "文件 $file 不存在,跳过。" |
| fi |
| done |
| |
| |
| if [ -n "$file_list" ]; then |
| pdftk $file_list cat output merged.pdf |
| echo "PDF 文件合并完成,合并后的文件名为 merged.pdf。" |
| else |
| echo "没有找到有效的 PDF 文件进行合并。" |
| fi |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具