我有一本 a6 pdf 书。我想将它转换为 a4 pdf,这样当我打印它时,我可以将 a4 页面一分为二(正反两面的内容相同,所以我最终会得到两份这本书)和将页面放在一起时,可以按顺序阅读(我认为这称为强制)
假设 A、B、C、D 是这本书的 4 页。我希望生成的文件是:
DA
DA
和
CD
CD
我说清楚了吗?
抱歉,如果我没有使用正确的术语。
我有一本 a6 pdf 书。我想将它转换为 a4 pdf,这样当我打印它时,我可以将 a4 页面一分为二(正反两面的内容相同,所以我最终会得到两份这本书)和将页面放在一起时,可以按顺序阅读(我认为这称为强制)
假设 A、B、C、D 是这本书的 4 页。我希望生成的文件是:
DA
DA
和
CD
CD
我说清楚了吗?
抱歉,如果我没有使用正确的术语。
正如建议的那样,强大的Multivalent 工具是解决方案,但它们需要与我附加的脚本相结合才能执行您想要的任务
2copiesinA4 filename.pdf multivalent relative path
它需要指定 2 个参数:
例如,如果您在/mnt/home/中有Multivalent.jar,这将是您需要传递给脚本的相对路径。
#!/bin/bash
file=$1
multivalentpath=$2
pages="`pdftk $file dump_data | grep NumberOfPages | cut -d : -f2`"
echo $pages
halfpages="`echo -n $(( $pages / 2 ))`"
echo $halfpages
h="$(pdfinfo $file | grep "Page size" | cut -d x -f1 | tr 'Page size:' ' ' | xargs)"
w="$(pdfinfo $file | grep "Page size" | cut -d x -f2 | tr 'pts' ' ' | xargs)"
echo $h
echo $w
doubleheight="`let MULTIPLICATION=$h*2; echo $MULTIPLICATION`"
doublewidth="`let MULTIPLICATION=$w*2; echo $MULTIPLICATION`"
echo $doubleheight
echo $doublewidth
sequence="`for ((x=$pages, y=1;x>=$halfpages, y<=$halfpages;x--, y++)); do echo "$x $y "; done | awk 'NR %2==1 {print $1, $2, $1, $2 } NR % 2==0 { print $2, $1, $2, $1 }' | xargs | tr " " ","`"
echo $sequence
java -cp "$multivalentpath"Multivalent.jar tool.pdf.Impose -verbose -dim 2x2 -paper "$doubleheight"x"$doublewidth"pt -page "$sequence" $file
exit 0
多价
把它放在磁盘上的某个地方,记住它的相对路径
重要提示:仔细检查您的 PDF 的页数是否为4 * 的整数倍数(如 4,8、12、16...等等)
我上传了一些示例文件
生成的IMPOSED文件如下所示(参见 gif 动画
打印完成后,您将拥有最后一页,成为您打印的大量纸张的第一页
您将在** A4 长边** 上的纸张中心(14.8 厘米)剪下这张纸,以将形成 2 本书的两块分开
然后再次切割两张纸块,以便能够关闭另一个上的每个生成的子锁,以使书具有连续的页面顺序
#笔记
这是通常为获得所谓的小册子(A5 肖像书,在 A4 横向纸上打印 2 页)所做的工作的重复,显然,在我们的例子中,同样可以为 A6 书做打印在 A4 上以获得整本书的 2 份副本,修改一些东西但具有相同的逻辑
拼版顺序,需要页面的顺序是这样的:
最后 - 第一,第二 - 倒数第二,倒数第二 - 第三......等等......
对于 16 页的书,拼版顺序为:
16 1, 2 15, 14 3, 4 13, 12 5, 6 11, 10 7, 8 9
在我们的例子中,因为我们想在 A4 纸上获得同一本书的两份完整副本,所以我们在同一张纸上重复了这个序列两次
我还开发了一种方法,根据我的个人需要,在 A4 纸上获得一份A6小册子副本,如果您只需要使用 A4 纸打印的书的一份 A6 副本
你想“强加”你的 PDF 页面,多价可以做到这一点 http://multivalent.sourceforge.net/Tools/pdf/Impose.html