Linux 使用pdftk bash脚本将pdf文件输出为一个pdf
我有一个包含PDF文件列表的bash脚本。 打印机输出根据注释/取消注释文件要求进行定制(参见下面的示例脚本)。 我希望添加到这一点,以便我可以选择使用pdftk(或纸质打印机)将所有选定的文件打印到单个pdf。我熟悉pdftk,但不是bash 任何人都可以指定bash代码作为一个PDF输出吗 多谢各位Linux 使用pdftk bash脚本将pdf文件输出为一个pdf,linux,bash,pdftk,filelist,Linux,Bash,Pdftk,Filelist,我有一个包含PDF文件列表的bash脚本。 打印机输出根据注释/取消注释文件要求进行定制(参见下面的示例脚本)。 我希望添加到这一点,以便我可以选择使用pdftk(或纸质打印机)将所有选定的文件打印到单个pdf。我熟悉pdftk,但不是bash 任何人都可以指定bash代码作为一个PDF输出吗 多谢各位 !/bin/bash # Print document pack # Instructions # ls > print.txt Generate
!/bin/bash
# Print document pack
# Instructions
# ls > print.txt Generate the file list into a file
# -o sides=two-sided-long-edge -#1 Prints two sided long edge, one copy
# -o sides=two-sided-long-edge -#2 Prints two sided long edge, two copies
# -o page-ranges=1 -#1 Print first page only, one copy
# -o page-ranges=1-2,5-7 -#1 Print pages 1-2 & 5-7 only, one copy
# -lt x sets number of packs to be printed
# while [ $COUNTER -lt ***** 1 ****** ]; do NUMBER INSIDE STARS INDICATES NUMBER PACKS TO PRINT
COUNTER=0
while [ $COUNTER -lt 1 ]; do
lpr "doc01.pdf"
lpr "doc02.pdf"
lpr -o sides=two-sided-long-edge -#1 "doc03.pdf"
# lpr "doc04.pdf"
# lpr "doc05.pdf"
lpr -o sides=one-sided-long-edge -o page-ranges=1 -#1 "doc06.pdf"
# lpr "doc07.pdf"
lpr -o sides=two-sided-long-edge -#2 "doc08.pdf"
lpr "doc09.pdf"
lpr "doc10.pdf"
let COUNTER=COUNTER+1
done
大概是这样的:
#!/bin/bash
files=()
add() {
files+=("'""$1""'")
}
add "file1.pdf"
#add "file2.pdf"
add "file3.pdf"
add "file with spaces.pdf"
echo "${files[*]}"
当然,用适当的pdftk
命令代替echo
编辑2 这个新的“版本”将更好地处理包含空格的文件名
编辑3 要将文件移交给命令,下面的操作似乎可以完成:
bash -c "stat $(echo "${files[*]}")"
你看过pdftk的手册页了吗?嗨,比芬。是的,我有。虽然不是bash,但我对pdftk很熟悉。bash脚本是从哪里来的?文件名是这样显示的,还是分配给了某个变量?@Biffen我还没有bash脚本。我所得到的我已经粘贴到上面修改过的问题中…尝试了
code
pdftk$files output newfile.pdfcode
以及code
echo pdftk$files output newfile.pdfcode
和一些变体。我认为问题在于通过bash将连接的字符串转义到pdftkworks,这对于没有空格的pdf文件名来说是完美的。所有的文件名中都有空格,比如“doc1.pdf”,所以需要能够通过bash传递。非常感谢。对尝试过编辑,看起来很棘手。很高兴见到你!!我该怎么处理。。。。“bash-c…”命令。我不太明白。谢谢大家!@user1062153将echo“${files[*]}”
替换为bash-c“pdftk$(echo“${files[*]}”)-o output.pdf“
(或任何pdftk
命令)。引用确实很棘手,但我已经测试过了,它似乎工作正常。太棒了!谢谢你,比芬。不知道没有你的帮助我会怎么做!