delete pages
#!/bin/bash
# 檢查 pdftk 是否安裝
if ! command -v pdftk &> /dev/null
then
echo "pdftk 未安裝,請先安裝 pdftk。"
exit 1
fi
# 檢查是否提供了 PDF 文件作為參數
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
# 執行 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
then
echo "pdftk 未安裝,請先安裝 pdftk。"
exit 1
fi
# 檢查是否提供了 PDF 文件作為參數
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
# 獲取 PDF 文件的總頁數
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
# 檢查 pdftk 是否安裝
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