一次打印双面文档的两份半尺寸副本

一次打印双面文档的两份半尺寸副本

我有一个双面的美国字母格式文档,我想通过将其大小调整为半个字母(又名声明或组织者 L)。

我目前的工作流程非常不方便:

  • 原件是双面的,A、B、C 等。
  • 使用 PDFSam混合pdf,复制每一页(使文档为 A、A、B、B、C、C、...),
  • 使用pdfjam,调整文档大小并一页一页地显示(这样我在同一页上有AA,在横向模式下,一个在另一个的顶部,等等),
  • 打印使用lp -o sides=two-sided-long-edge.

我确信有一种更简单的方法可以实现这一目标,但找不到。我当前的做法的另一个障碍是 pdfjam 引入了额外的边距,我必须使用trim.

答案1

对我有用的是使用pdftk双倍页面,然后您可以使用以下方法进行配对pdfjam

pdftk Lorem.pdf cat 1 1 2 2 output - |
    pdfjam --nup 2x1 --landscape --outfile Lorem_2up.pdf

您可以使用/dev/stdout而不是Lorem_2up.pdf将结果通过管道传输到标准输出以便进一步处理(或打印)。

如果您想推广该解决方案,您需要确定页面数,然后生成适当的双倍命令:

#!/bin/bash
file=$1
pages=$(pdftk "$file" dump_data | awk '/NumberOfPages/ {print $2}')

cats=()
for ((page=1; page<=pages; page++))
do
    cats+=($page $page)
done

pdftk "$file" cat "${cats[@]}" output - |
    pdfjam --nup 2x1 --landscape --outfile "${file%.pdf}_2up.pdf"

参考

相关内容