Автоматически объединять PDF-файлы с соответствующими именами файлов
Мне нужно объединить / объединить несколько файлов PDF.
У меня есть несколько файлов PDF в одной папке. PDF-файлы, которые необходимо объединить / объединить, будут иметь общее частичное имя; например:
123456_ABCD.pdf
123456_EFGH.pdf
123456_IJKL.pdf
Имя файла начинается с цифр, затем подчеркивается, а затем имя файла. У меня будут сотни похожих PDF-файлов, и я ищу способ автоматического объединения этих файлов с помощью пакетного сценария, VBA в Excel или любого другого.
Вывод нового файла должен быть в отдельной папке с именем 123456.pdf
, Я использую ОС Windows. В моей системе установлены Adobe Reader, PDF995 и CutePDFwriter.
Я могу собрать все PDF-файлы в одной главной папке. Эта папка будет иметь несколько PDF-файлов, как показано ниже.
123456_ABCD.pdf
123456_EFGH.pdf
123456_IJKL.pdf
111111_ABCD.pdf
111111_EFGH.pdf
222222_IJKL.pdf
222222_WXYZ.pdf
В этом сценарии PDF-файлы, которые я ожидаю в выходной папке:
123456.pdf
111111.pdf
222222.pdf
1 ответ
(Непроверенные)
- Скачайте pdftk ( прямая ссылка здесь).
- Извлеките это где-нибудь.
- Положите pdftk.exe и пакет вместе.
- Тогда открой
cmd
где находится партия * и запустите ее.
* (Shift+RightClic открыть командную строку здесь)
Сценарий должен работать, если структура папок выглядит следующим образом:
|
+---111111
| 111111_ABCD.pdf
| 111111_EFGH.pdf
|
+---123456
| 123456_ABCD.pdf
| 123456_EFGH.pdf
| 123456_IJKL.pdf
|
\---222222
222222_IJKL.pdf
222222_WXYZ.pdf
И не в одной папке, где есть все файлы.
@echo off
setlocal enabledelayedexpansion
rem source root folder where to crawl pdfs.
set "source=c:\mydoc\pdf"
rem destination folder
set "destination=c:\mydoc\merged"
for /f "delims=" %%a in ('dir /b /s /ad /o:n "%source%"') do (
set _pdffiles=
for /f "delims=" %%i in ('dir /b /a-d /o:n "%%a\*.pdf"') do (
set _pdffiles=!_pdffiles! "%%i"
set "_outputpdf=%%~ni"
)
echo pdftk.exe !_pdffiles! cat output "%destination%\!_outputpdf:~0,6!.pdf"
)
Удалить echo
если вы думаете, что партия в порядке.
Ответ во многом вдохновлен этим
Обновление: есть два ответа, которые дополняют мой пост