在PDF文档中的每个现有页面之间插入空白页

tim*_*tim 10 pdf pdftk

我有一个PDF,我想要一个快速的方法来每隔一页插入一个空白页(除了最后).例如,我的PDF有页面

1: A
2: B
3: C
4: D
Run Code Online (Sandbox Code Playgroud)

它应该看起来像:

1: A
2: empty
3: B
4: empty
5: C
6: empty
7: D
Run Code Online (Sandbox Code Playgroud)

有没有简单的脚本方法可以这样做?我想过使用pdftk,但我不知道它是否是最简单的方法...我正在运行Windows 7.

谢谢到目前为止!

ucy*_*cyo 10

还有这个想法审查论文.这是完整的脚本.

#!/bin/bash

if [ $# -ne 1 ]
then
  echo "Usage example: ./bashscript src.pdf"
  exit $E_BADARGS
else
  NUM=$(pdftk $1 dump_data | grep 'NumberOfPages' | awk '{split($0,a,": "); print a[2]}')
  COMMSTR=''

  for i in $(seq 1 $NUM);
  do
    COMMSTR="$COMMSTR A$i B1 " 
  done
  $(echo "" | ps2pdf -sPAPERSIZE=a4 - pageblanche.pdf)
  $(pdftk A=$1 B=pageblanche.pdf cat $COMMSTR output 'mod_'$1)
  (pdfnup 'mod_'$1 --nup 2x1 --landscape --outfile 'print_'$1)
  $(rm pageblanche.pdf && rm 'mod_'$1)

fi

#for f in *.pdf; do ./bashscript.sh $f; done 2> /dev/null
Run Code Online (Sandbox Code Playgroud)


小智 7

用pdftk做这件事的唯一困难就是键入所有内容.对于后代(如果某人有少量页面并希望这样做)以下是如何使用pdftk(以3页为例).

  1. 安装pdftk http://www.pdflabs.com/docs/install-pdftk/

做这个:

pdftk A=notblank.pdf B=blank.pdf cat A1-1 B1-1 A2-2 B1-1 A3-3 output combined.pdf
Run Code Online (Sandbox Code Playgroud)

如果你想在每3页的末尾有一个空白页面,它将是这样的:

pdftk A=notblank.pdf B=blank.pdf cat A1-3 B1-1 A4-6 B1-1 A7-9 output combined.pdf
Run Code Online (Sandbox Code Playgroud)

如果您最后想要一个空白页面,只需添加另一个B1-1.此外,您需要一个空白的PDF来使用,当然这适用于非空白页面,您可以乱用数字并使用2个以上的pdf.

  • blank.pdf?所以没有选择制作白页? (3认同)

tim*_*tim 1

好的,我自己使用 PHP 和 FPDI/FPDF 完成了:

\n\n
<?php\nerror_reporting(E_ALL);\nrequire_once('fpdi/fpdf.php');\nrequire_once('fpdi/fpdi.php');\n\n// Format f\xc3\xbcr die einzelnen Folien:\n$format = 'L';  // Entweder '' (horizontal) oder 'L' (Landscape!)\n\n// Verzeichnis lesen\nforeach(glob('infiles/*.pdf') as $file)\n{\n    $filename = basename($file);\n    $fileout = 'outfiles/' . $filename;\n\n    // Ausgabe-PDF\n    $out = new FPDI();\n\n    // Vorhandenes PDF einlesen\n    $pagecount = $out->setSourceFile($file);\n\n    // Alle Seiten nacheinander importieren\n    for($i = 1; $i <= $pagecount; $i++)\n    {\n        // Importiere Seite\n        $tpl = $out->importPage($i); // , '/MediaBox'\n\n        // Vorhandene Seite\n        $out->addPage($format);\n        $out->useTemplate($tpl);\n\n        if($i < $pagecount)\n        {\n            // Leere Seite anf\xc3\xbcgen (nur nicht am Ende)\n            $out->addPage($format);\n        }\n    }\n\n    $out->Output($fileout);\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

子目录“infiles”中的所有文件都将插入空白页面并保存到具有相同文件名的“outfiles”中!

\n