Adobe Acrobat:如何批量合并多个pdf文件?


10

我有3个文件夹:

Folder 1 
Folder 2
Folder 3

在每个文件夹中,我有5个pdf文件:

    Folder 1 
       file1.pdf
       file2.pdf
    Folder 2
       file1.pdf
       file2.pdf
    Folder 3
       file1.pdf
       file2.pdf

我希望每个文件夹中都有这两个文件的组合文件:

    Folder 1 
       binder.pdf
    Folder 2
       binder.pdf
    Folder 3
       binder.pdf

任何的想法?不要告诉要手动进行。这种情况只是为了向您解释我的问题。认为我有数百个文件夹。:)也许我可以使用其他工具代替Adobe Acrobat吗?


“具有这两个文件的组合文件”到底是什么意思?是否可以将这两个文件合并并合并为1个PDF?
Kurt Pfeifle 2012年

Adobe Acrobat或Adobe Acrobat Reader
wmz 2012年

@AndreiAndre许多好的解决方案已发布到您的问题。也许您可以选择一个满足您所有需求的产品,并将其标记为已接受。
nixda

Answers:


12

您可以使用简短的批处理文件和pdftk.exe(不是GUI版本的pdftk Builder)来执行此操作。
无需安装任何东西。

制备

  • 使用UniExtract下载并解压缩pdftk
  • 打开.. \ pdftk \ bin *,然后将pdftk.exelibiconv2.dll复制到您选择的文件夹中
  • 创建一个新的文本文件并粘贴以下代码

    @回声关闭
    setlocal enabledelayedexpansion
    FOR %% A IN(%*)做(设置命令=!命令!%% A)
    pdftk.exe%command%cat输出“%〜dp1binder.pdf”
    
  • 将其另存为merge@pdf.cmd与pdftk.exe和libiconv2.dll在同一文件夹中 在此处输入图片说明
  • 创建此.cmd的快捷方式并将其放置在sendto文件夹中(Win+ R»shell:sendto)

用法

  • 转到包含一些PDF文件的文件夹,然后根据需要选择尽可能多的PDF
  • 右键单击它们,然后选择刚创建的快捷方式
  • 将在同一文件夹中创建一个新的活页夹 PDF,将所有选定的PDF合并到一个文件夹中

    在此处输入图片说明

更新:使用当前文件夹名称作为生成的pdf文件名的版本

@echo off
setlocal enabledelayedexpansion
:: Concat all paths fromselected files and save it as command
FOR %%A IN (%*) DO (set command=!command! %%A)

:: Take path from first selected file and save it as path
set path=%~dp1
echo %path%

:: Check if a trailing slash is present. If yes, remove it
IF %path:~-1%==\ SET path=%path:~0,-1%

:: Get last folder from path
FOR %%F in ("%path%") do (set lastFolder=%%~nxF)

:: Call pdftk, pass on command. use lastFolder as filename
pdftk.exe %command% cat output "%path%\%lastFolder%.pdf"

非常好的答案。我正在努力对其进行修改,因此将其另存为FOLDERNAME,而不是binder.pdf。我该怎么办?
Chen Stats Yu

@ChenStatsYu查看更新
nixda

大!!很抱歉再次询问,不确定我是否应该开始新的帖子。我要对40/50个文件夹重复一次,这是最后一个请求,我们可以修改它以将“文件夹”发送到cmd并使用文件夹名称,而不是从文件夹中选择一些pdf吗?
Chen Stats Yu

另外,我希望它支持非英语文件夹名称。
Chen Stats Yu

5

如果您使用的是Linux(或Mac,或安装了它的任何环境),则可以使用名为ghostscript的命令行工具来将它们组合在一起。

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combinedpdf.pdf -dBATCH file1.pdf file2.pdf file3.pdf

您还可以使用以下内容合并当前文件夹中的所有文件

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combinedpdf.pdf -dBATCH *.pdf 

您可以在此处下载ghostscript 。也有Windows版本,但我没有对其进行测试。


1
它也适用于Windows。我必须写出ghostscript可执行文件的完整路径(在我的PC上是“ c:\ Program File \ gs \ gs9.07 \ bin \ gswin32c.exe”),“ *。pdf”扩展名不起作用,但是ghostscript本身运行完美。
2013年

3

我已经成功使用了上述解决方案。但是,在我的系统(Windows 7 64位)上,代码按其(显然)随机顺序(而不是按文件名按字母顺序)添加PDF。

要使其按字母顺序添加文件,您需要将sort-object参数添加到DIR(aka Get-ChildItem)命令(sort-object在此处不使用参数,因为filename / alphabetally是默认设置):

dir $inputfolder -r -include *.pdf -exclude $outputfile | sort-object | group DirectoryName % {& $PDFtk $.group CAT OUTPUT "$($.Name)\$outputfile" verbose}

那些文件名的格式为1.pdf 2.pdf ... 10.pdf等,而不是01.pdf 02.pdf .. 10.pdf的人可能还想尝试以下方法:

pdftk *?.pdf *??.pdf *???.pdf *????.pdf cat output out.pdf

“以上解决方案”-大概是指nixda的解决方案。如果您的回答被投票高于nixda的投票,那么它将是
面条

1

有一个新的在线高级PDF操作工具Sej-da仍处于Beta版,该工具具有多种PDF功能(能够合并多个pdf)。它免费,可以很好地满足您的需求。

http://sejda.com/

修订版3才在几周前对它的功能进行了简要回顾:

http://revision3.com/tzdaily/sejda-online-pdf


OP显然具有合并pdf文件的能力,他希望通过自动化流程进行批量合并。您的答案没有提供有关如何以这种方式使用sejda的详细信息,从他们的网站上也看不出来
面条

1

也许最好使用批处理方案。创建并收集所有pdf文件,格式为xxxx.abcdef.pdf。

第一部分是所谓的批处理标签;第二部分是文件标识符(文件名)。每个背面的标签在长度和价值上都相似。文件名紧随其后。

例如,您的第一批包含1111.3425.pdf,1111.76501.pdf等。第二批是22222.1432.pdf,22222.4398,依此类推。对于其他批次,依此类推。

然后,您可以使用自动合并软件,该软件可以处理数千个文件,并为每个批次创建一个单独的合并。我找到了这个不需要or或批处理脚本的Dy免费软件。您可以将其下载为可移植的JAR文件。它具有不同的自动化方案。一个在此答案中描述为标记,一个作为所需的文件夹分开。

根据您的硬件,您可以将成千上万个文件批量合并为预定的批次。


0

尝试使用PDFMerge。但是,请不要使用必须一一选择每个文件的初始格式。相反,请等待站点检查Java安装,然后单击“尝试PDFMerge Java Applet”链接。加载小程序并允许其运行后,单击“ 选择文件”按钮,您将能够选择多个文件(合并为一个文件)。

合并将非常快,并且能够处理大量文件,因为没有任何内容上载到网站中。使用Java安装,一切都在计算机本身中完成。

PS:对不起,如果您正在寻找可定制以跨多个文件夹创建单个PDF文件的脱机软件。


0

如果您使用的是Mac,则可以创建一个Automator脚本来完成此任务。将其作为文件夹操作,只需将pdf放入其中即可看到它发生了!如果您愿意,我可以告诉您如何运行Mac?


0

在Linux上

我写了这么长的命令行

tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} dirname {} | uniq | xargs -L1 -I {} bash -c 'cd "$0" && pdftk *.pdf cat output binder.pdf' {}

但是,我测试过,它确实可以完成这项工作,它还可以与您拥有多少级文件夹一起使用。只要确保将其运行在文件夹结构的根目录即可。

您需要pdftktree为此,在Ubuntu Linux上,可以使用apt安装它:

sudo apt install pdftk tree
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.