如何使用 pdftk 将多个 PDF 文件合并到一页上?

如何使用 pdftk 将多个 PDF 文件合并到一页上?

我有一系列 PDF 文件1.pdf2.pdf等,我想将它们合并为一个文件,并将所有 PDF 平铺在一页上。

目前,我已尝试pdftk合并这些文件,但它们被放在单独的页面上:

pdftk 1.pdf 2.pdf ... cat output merged.pdf

有没有办法将各个 PDF 文件平铺到一个主页上merged.pdf

答案1

我不知道是否pdftk可以这样做,但pdfjam可以。它可以安装在 Debian 或衍生版本上sudo apt install texlive-extra-utils。然后你可以这样做:

pdfjam Page1.pdf Page2.pdf --nup 2x1 --landscape --outfile Page1+2.pdf

它将两页并排放在一页上。--nup 1x2 --no-landscape您可以将两页并排放在一页上。

答案2

不确定你的意思tiled on one page。我正在寻找一种方法来将多个 PDF 合并到一页上 - 在另一个页面上。可以pdftk这样做:

pdftk foreground.pdf background background.pdf output merged.pdf

答案3

基于 pdfLaTeXpdfnup可能对你有用。如果你有很多 pdf 文件,你可能需要制作一个长管道的 pdfjam 或运行它几次。

还有python 中的 pdfnup

答案4

此脚本将为您平铺 pdf 页面。将切片更改为每页所需的大小。

#!/usr/bin/ruby

latexhead = <<'EOF'
\documentclass{article}
\usepackage[pdftex]{graphicx}
\usepackage[margin=0.1in]{geometry}
\usepackage{pdfpages}
\begin{document}
EOF
latextail = <<'EOF'
\end{document}
EOF

pages = %x[pdfinfo #{ARGV[0]}].split(/\n/).select{|x| x=~ /Pages:/}[0].split(/\s+/)[1].to_i
puts latexhead
s = (1..pages).each_slice(4).to_a
s.each do |a|
  puts "\\begin{figure}"
  a.each do |p|
    puts "\\includegraphics[page=#{p},scale=0.4,width=.5\\textwidth]{#{ARGV[0]}}"
  end
  puts "\\end{figure}"
end
puts latextail

相关内容