Adobe Acrobat: Как пакетно объединить несколько файлов PDF?

У меня есть 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?!

8 ответов

Вы можете сделать это с помощью короткого пакетного файла и pdftk.exe (не pdftk Builder, который является версией GUI).
Там нет необходимости устанавливать что-либо.

подготовка

  • скачать и извлечь pdftk с UniExtract
  • Откройте..\pdftk\bin* и скопируйте pdftk.exe и libiconv2.dll в папку по вашему выбору
  • создайте новый текстовый файл и вставьте следующий код

    @ эхо выключено
    setlocal enabledelayedexpansion
    FOR %%A IN (%*) DO (установить команду =! Команда! %%A)
    pdftk.exe % команда% cat выводит "%~dp1binder.pdf"
  • Сохраните его как merge@pdf.cmd в той же папке, что и pdftk.exe и libiconv2.dllвведите описание здесь
  • создайте ярлык этого.cmd и поместите его в папку sendto (оболочкаWin+R ":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"

Если вы работаете в 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, но я ее не тестировал.

Я успешно использовал вышеуказанное решение. Тем не менее, в моей системе (Windows 7 64-bit) код как таковой добавляет PDF-файлы в (очевидно) случайном порядке, а не в алфавитном порядке по имени файла.

Чтобы заставить его добавлять файлы в алфавитном порядке, вам нужно добавить параметр sort-object в команду DIR (aka Get-ChildItem) (sort-object здесь не принимает никаких параметров, так как имя файла / в алфавитном порядке по умолчанию):

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

Возможно, лучше использовать пакетный сценарий. Создайте и соберите все ваши файлы PDF в формате xxxx.abcdef.pdf.

Первая часть - это так называемый пакетный тег; вторая часть - это идентификатор файла (имя файла). Теги для каждой спины похожи по длине и значению; имена файлов идут после точки.

Например, ваша первая партия состоит из 1111.3425.pdf, 1111.76501.pdf и так далее. Ваша вторая партия - 22222.1432.pdf, 22222.4398 и так далее. И так далее и тому подобное для других партий.

Затем вы можете использовать программное обеспечение автоматического слияния, которое может обрабатывать тысячи файлов, создавая отдельное слияние для каждого пакета. Я нашел это бесплатное программное обеспечение Dysprosium, которому не нужна командная строка или пакетный скрипт. Вы можете скачать его в виде портативного файла JAR. У этого есть различные автоматизированные сценарии; один описан в этом ответе как пометка, а другой как разделенная папка.

В зависимости от вашего оборудования вы можете пакетно объединить тысячи файлов в предопределенные пакеты.

Существует новый онлайновый инструмент Advanced PDF Manipulation под названием Sej-da, который все еще находится в бета-версии, с множеством функций PDF (включая возможность объединения нескольких файлов PDF). Это бесплатно и вполне может помочь вашим потребностям.

http://sejda.com/

Краткий обзор его функций был проведен только пару недель назад в Revision 3:

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

Если вы работаете на Mac, вы можете создать скрипт Automator для решения этой задачи. Сделайте это как действие папки и просто поместите PDF-файлы в него и посмотрите, как это происходит! Если вы хотите, я могу показать вам, как вы работаете Mac?

В линуксе

Я написал эту довольно длинную командную строку

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

Но он выполняет свою работу, я проверял это, он также работает с тем, сколько у вас уровней папок. Просто убедитесь, что вы запускаете его в корне структуры папок.

Тебе нужно pdftk а также tree для этого и на Ubuntu Linux вы можете установить его с помощью apt:

sudo apt install pdftk tree

Попробуйте PDFMerge. Но не используйте начальную форму, где вы должны выбрать каждый файл один за другим. Вместо этого подождите, пока сайт проверит вашу инсталляцию Java, а затем нажмите ссылку "Попробуйте PDFMerge Java Applet". Как только апплет загружен и разрешен к запуску, нажмите кнопку " Выбрать файлы", и вы сможете выбрать несколько файлов (объединить в один файл).

Слияние будет очень быстрым и сможет обрабатывать большое количество файлов, так как на сайт ничего не загружается. Все делается на вашем компьютере с помощью вашей установки Java.

PS: Извините, если вы ищете автономное программное обеспечение, которое можно настроить для создания отдельных файлов PDF в нескольких папках.

Другие вопросы по тегам