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 роботи для вас?
Курт Пфайфл

Adobe Acrobat чи Adobe Acrobat Reader ?
wmz

@AndreiAndre На ваше запитання було розміщено багато хороших рішень. Можливо, ви можете вибрати ту, яка відповідає всім вашим потребам, і позначте її як прийняту.
nixda

Відповіді:


12

Це можна зробити за допомогою короткого пакетного файлу та pdftk.exe (не pdftk Builder, який є версією графічного інтерфейсу).
Не потрібно нічого встановлювати.

Підготовка

  • завантажити та витягнути pdftk за допомогою UniExtract
  • Відкрийте .. \ pdftk \ bin * і скопіюйте pdftk.exe та libiconv2.dll у вибрану вами папку
  • створити новий текстовий файл і вставити наступний код

    @echo off
    setlocal enabledeyedex розширення
    ДЛЯ %% A IN (% *) DO (встановити команду =! Команда! %% A)
    pdftk.exe% command% cat output "% ~ 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"

ДУЖЕ приємна відповідь. Я намагаюся його змінити, тому він зберігає як FOLDERNAME замість binder.pdf. Як я міг це зробити?
Chen Stats Yu

@ChenStatsYu Дивіться оновлення
nixda

ВЕЛИКО !! Просимо вибачення ще раз, не впевнений, чи варто починати нову публікацію. Лише один останній запит, оскільки я повторюю це для майже 40/50 папок, чи можемо ми його змінити, щоб надіслати "папку" в cmd та використовувати ім'я папки, замість того, щоб вибрати деякі файли pdfs з папки?
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
Він працює і на вікнах. Мені довелося записати повний шлях до виконуваного файлу ghostscript (на моєму ПК це "c: \ програмний файл \ gs \ gs9.07 \ bin \ gswin32c.exe") і розширення "* .pdf" не працює, але Сам ghostscript прекрасно працює.
Пітару

3

Я успішно використовував вищевказане рішення. Однак у моїй системі (Windows 7 64-розрядний) код як би додає PDF-файли у (мабуть) випадковому порядку, а не в алфавітному порядку за назвою файлу.

Щоб додати файли в алфавітному порядку, вам потрібно буде додати параметр sort-object до команди DIR (він же 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

"вище рішення" - мабуть, ви маєте на увазі рішення nixda. Якби ваша відповідь була проголосована вище за nixda, вона була б нижче
локшина

1

Існує новий онлайн-інструмент Advanced Advanced Manipulation PDF під назвою Sej-da, який все ще знаходиться в бета-версії, який має безліч функцій PDF (включаючи можливість об'єднання декількох pdfs). Це безкоштовно і цілком може допомогти вашим потребам.

http://sejda.com/

Короткий огляд його функцій було здійснено лише пару тижнів тому у версії 3:

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


ОП очевидно здатний об'єднувати файли PDF, він хоче згрупувати злиття за допомогою автоматизованого процесу. У вашій відповіді немає деталей щодо того, як використовувати sejda таким чином, і це не видно з їх веб-сайту
локшина

1

Можливо, краще використовувати пакетний сценарій. Створіть і збирайте всі ваші PDF-файли як xxxx.abcdef.pdf.

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

Наприклад, ваша перша партія складається з 1111.3425.pdf, 1111.76501.pdf тощо. Ваша друга партія - 22222.1432.pdf, 22222.4398 тощо. І так далі, і так далі для інших партій.

Тоді ви можете використовувати програмне забезпечення для автоматичного злиття, яке може працювати з тисячами файлів, створюючи окреме об'єднання для кожної партії. Я знайшов це безкоштовне програмне забезпечення Dysprosium , яке не потребує командного рядка або пакетного сценарію. Ви можете завантажити його як портативний файл JAR. Він має різні автоматизовані сценарії; один, описаний у цій відповіді як тег, а один як потрібну папку.

Залежно від обладнання ви можете об'єднати тисячі файлів у заздалегідь визначені партії.


0

Спробуйте PDFMerge . Але не використовуйте початкову форму, де потрібно вибирати кожен файл по одному. Замість цього зачекайте, поки сайт перевірить вашу установку Java, а потім натисніть посилання "Спробуйте PDFMerge Java Applet". Після завантаження і дозволення запуску аплету натисніть кнопку Вибрати файли , і ви зможете вибрати декілька файлів (для об'єднання в один файл).

Об'єднання буде надшвидким та зможе обробляти велику кількість файлів, оскільки нічого не завантажується на веб-сайт. Все робиться на самому комп’ютері за допомогою інсталяції Java.

PS: Вибачте, якщо ви шукаєте офлайн-програмне забезпечення, яке можна налаштувати для створення єдиних PDF-файлів у кількох папках.


0

Якщо ви перебуваєте на Mac, ви можете створити скрипт Automator для досягнення цього завдання. Зробіть це як дію з папками та просто опустіть у нього файли pdfs та побачите, як це станеться! Якщо ви хочете, я можу показати вам, як ви працюєте з 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' {}

Але це робить цю роботу, я перевірив її, він також працює з кількістю рівнів папок. Просто переконайтеся, що ви запускаєте його корінь структури папки.

Вам потрібно pdftkі treeдля цього, і для Ubuntu Linux ви можете встановити його за допомогою apt:

sudo apt install pdftk tree
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.