Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 19.12.2016
Сообщений: 2

Пакетная обработка PDF-файлов с помощью программы PDFtk Pro

19.12.2016, 17:29. Показов 5993. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Я мало что вообще ничего не понимаю в batch, но внезапно возникла задача - выполнение автоматического склеивания постраничных PDF. Как это реализовать, я до нынешнего момента не знал (и, вообще, не думал, что понадобится), да и теперь не знаю, но сёрф по этому ресурсу дал кое-какие результаты. Но, не имея знаний об этом, я, в конце концов, оказался в тупике. Если не в тягость, подскажите, пожалуйста.

Итак.

Есть несколько папок с pdf-ами внутри.
\\Issues\
- \\Issues\Jan\01.pdf, 02.pdf, 03.pdf etc...
- \\Issues\Feb\01.pdf, 02.pdf, 03.pdf etc...
- ...
Нужно получить склеенные PDF из папок \Jan\, \Feb\ и т.д. (это номера журналов, по месяцам).

Есть программа PDFtk Pro, работающая с консолью. Она умеет склеивать PDF вот так:
Windows Batch file
pdftk *.pdf cat output combined.pdf
И максимум, что я смог из себя выдавить:
Windows Batch file
1
2
3
@Echo off
for /R "\\servfile\common\Issues" %%B in (*.pdf) do pdftk cat output "\\servfile\common\Issues\combined.pdf"
pause
Конечно, такая конструкция что-то не работает.
Errors encountered. No output created, one. Input errors, so no output created.
И, да, стоп. Даже бы если работала, то она, наверное, слепила бы все файлы в один!

Если из моего описания что-то понятно, подскажите, пожалуйста, как грамотно запустить pdftk cat output для всего массива данных. И как научить её слеплять pdf только по папкам.

Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.12.2016, 17:29
Ответы с готовыми решениями:

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

Пакетная обработка файлов - что такое if %1==/a объясните??
што такое if %1==/a объясните??это в лабе по теме пакетная обработка файлов

Пакетная обработка файлов и папок в Windows 8.1 по определённому сценарию
Всем привет, я не особо силён в этом, но помогите решить вроде бы не слишком сложную задачу - как составить БАТник для такого (осторожно...

7
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
19.12.2016, 19:05
barabanozver,
Не знаю как работает утилита, но запустив этот код, посмотрите на выход и в подпрограмме вместо echo поставьте свою утилиту с необходимыми действиями над файлами %%a каждой папки:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set "d=\\servfile\common\Issues"
for /f "delims=" %%a in ('dir/ad/b "%d%"') do call :# "%%a"
pause>nul& exit
 
:#
 pushd "%d%\%~1"
  for /f "delims=" %%a in ('dir/a-d/b "*.pdf"') do echo %%a
 popd
exit/b
.
0
 Аватар для volodin661
6692 / 2283 / 348
Регистрация: 10.12.2013
Сообщений: 7,894
19.12.2016, 20:08
Цитата Сообщение от barabanozver Посмотреть сообщение
Я вообще ничего не понимаю в batch
bat-file не нуждается в прикладывании к нему дополнительных мыслит. усилий,
чай не бином Ньютона, это просто текстовый файл с последовательностью команд
и для его составления достаточно здравого смысла

Windows Batch file
1
2
3
4
5
6
pdftk \\Issues\Jan\*.pdf cat output jan.pdf
pdftk \\Issues\Feb\*.pdf cat output feb.pdf
pdftk \\Issues\Mar\*.pdf cat output mar.pdf
pdftk \\Issues\Apr\*.pdf cat output apr.pdf
...
pdftk \\Issues\Dec\*.pdf cat output dec.pdf
0
0 / 0 / 0
Регистрация: 19.12.2016
Сообщений: 2
20.12.2016, 18:09  [ТС]
alpap, спасибо!
Но он, когда я запускаю с echo, выдаёт:
Файл не найден
Файл не найден
Для продолжения нажмите любую клавишу . . .
То же самое происходит, если добавляю (правильно ли?):
Windows Batch file
6
7
8
9
10
:#
    pushd "%d%\%~1"
        for /f "delims=" %%a in ('dir/a-d/b "*.pdf"') do pdftk cat output %%a
    popd
    exit/b
Добавлено через 9 минут
volodin661, предложенный вами вариант действительно прост, и я бы применил такое решение.
Но боюсь, что придется в дальнейшем вносить изменения в файл из-за возможного изменения структуры каталога (добавления поддиректорий в директории с месяцами)...
Извините, не упомянул об этом раньше.
Хочется скармливать батнику именно корневую папку...
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
20.12.2016, 21:21
barabanozver,
при вашей задаче, наверное, так должно вас устроить:
Windows Batch file
1
2
3
4
@echo off
set "d=\\servfile\common\Issues"
for /f "delims=" %%a in ('dir/ad/b "%d%"') do pdftk "%d%\%%a\*.pdf" cat output "%%~na.pdf"
pause>nul
1
 Аватар для volodin661
6692 / 2283 / 348
Регистрация: 10.12.2013
Сообщений: 7,894
20.12.2016, 21:26
Цитата Сообщение от barabanozver Посмотреть сообщение
я бы применил
Цитата Сообщение от barabanozver Посмотреть сообщение
Но боюсь
сделать эту ерунду вот так в лоб можно было самому за 44 сек,
не тратить два дня и ни на какие форумы не писать;
если в неопределённом будущем 'придется в дальнейшем вносить изменения в файл из-за возможного изменения структуры каталог', затратишь на это ещё 44сек.
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
20.12.2016, 21:34
volodin661,
кто его знает, месяцев-то вроде 12 (и папок), а если еще тьма янв1 янв2 ...янв3002
0
 Аватар для volodin661
6692 / 2283 / 348
Регистрация: 10.12.2013
Сообщений: 7,894
20.12.2016, 22:49
32 мая.

ещё раз: речь не о 12 месяцах и не о возможных проблемах в будущем
у Снегурочки с Морозко, речь о подходе:

если можно самостоятельно решить текущую задачу в лоб за 40 сек, то так и надо сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.12.2016, 22:49
Помогаю со студенческими работами здесь

Пакетная обработка файлов с заданным расширением программой "faad.exe"
Ребята, помогите, я в этом совершеннейший нуб. Не разбираюсь ни в синтаксисах не в программировании, но очень надо, а проблема очень...

Обработка pdf файлов в каталогах с подкаталогами
К примеру в каталоге c:\dir1 и его подкаталогах находятся pdf файлы. Их необходимо найти и передать утилите pdftotext. Команда в простейшем...

Пакетная обработка файлов
Нужно переводить большие группы файлов *.txt *.hmtl *.php и т.д. из кодировки ANSI в UTF-8 с сохранением оригинальных файлов (скажем с...

Пакетная конвертация PDF в DOC и печать любых документов на PDF-принтере
В первую очередь извините, если создал тему в неположенном разделе, но к сожалению найти близкий по тематике раздел мне не удалось =(. ...

Пакетная обработка
Ребят задумка такая....открываю файл docx, запускаю макрос. Он копирует в буфер картинки с листа, затем запускает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru