使用pdftk在多个位置合并PDF

时间:2012-08-16 15:31:58

标签: vbscript batch-file merge pdftk

我正在尝试合并多个PDF,从批处理或VBS脚本文件中调用pdftk。 问题是PDF都位于公共父目录中的子文件夹中。示例:父文件夹>子文件夹1,子文件夹2,子文件夹3 ,其中脚本/ BAT文件位于父文件夹中,每个子文件夹包含PDF。

pdftk的调用方式如下: pdftk.exe * .pdf cat output OutputFile.pdf

这将仅合并当前目录中的PDF,而不是子文件夹中的PDF。 有没有办法做以下其中一种:

  1. 使用VBS / BAT文件将子文件夹中的所有PDF复制到另一个目录,如果某些子文件夹为空,则不会出现错误
  2. 让pdftk查看子文件夹以选择要合并的PDF
  3. 任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

试试这个:

Wscript.Echo "begin."
Dim pdffiles
pdffiles=""
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objSuperFolder = objFSO.GetFolder(WScript.Arguments(0))
Call ShowSubfolders (objSuperFolder)

Dim objShell
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "pdftk.exe", pdffiles & " output combined.pdf", "", "runas", 1

Wscript.Echo "end."

WScript.Quit 0

Sub ShowSubFolders(fFolder)
    Set objFolder = objFSO.GetFolder(fFolder.Path)
    Set colFiles = objFolder.Files
    For Each objFile in colFiles
        If UCase(objFSO.GetExtensionName(objFile.name)) = "PDF" Then
            pdffiles=pdffiles & " " & objFile.Name
        End If
    Next

    For Each Subfolder in fFolder.SubFolders
        ShowSubFolders(Subfolder)
    Next
End Sub