Слияние файлов .pdf с помощью Pdftk - PullRequest
0 голосов
/ 06 июня 2018

У меня много .pdf файлов в папке.Также у меня есть скрипт .bat, который работает вместе с программой Pdftk.Но когда я выполняю .bat, он не работает.

Следуйте моему сценарию:

@echo off
setlocal enabledelayedexpansion
FOR %%A IN (%*) DO (set command=!command! %%A)
pdftk.exe %command% cat output "%~dp1binder.pdf"

Мои .pdf файлы, .bat сценарий и pdftk.exe с нимlibiconv2.dll все находятся в одной папке.

Может кто-нибудь мне помочь?Мне нужно объединить все файлы .pdf в папке.

Спасибо!


Ребята, эта простая команда отлично работает для меня, с одной проблемой.Если в команде нет файла, он не будет обрабатываться.Посмотрите скрипт:

@echo off
pdftk fbw1.pdf fbw2.pdf fbw3.pdf fbw4.pdf fbw5.pdf fbw6.pdf fbw7.pdf fbw8.pdf fbw9.pdf fbw10.pdf fbw11.pdf fbw12.pdf fbw13.pdf fbw14.pdf fbw15.pdf fbw16.pdf fbw17.pdf fbw18.pdf fbw19.pdf fbw20.pdf fbw21.pdf fbw22.pdf fbw23.pdf fbw24.pdf fbw25.pdf fbw26.pdf fbw27.pdf fbw28.pdf cat output testieee.pdf >nul 2>nul

Например: если у меня нет файла fbw1.pdf в каталоге, он ничего не обработает.Мне нужно, чтобы программа обрабатывала все файлы, даже не хватает одного или нескольких ...

Кто-нибудь, чтобы помочь?

Спасибо!


Хорошо, команда pdftk *.pdf cat output combined.pdf теперь работает, но не объединяет файлы .pdf в последовательности.Пример: 1.pdf 2.pdf 3.pdf.... - это последовательность, которую я хочу, но команда объединяется следующим образом: 1.pdf 3.pdf 2.pdf 7.pdf.... Есть способ распознать последовательность?

Спасибо

1 Ответ

0 голосов
/ 06 июня 2018

РЕДАКТИРОВАТЬ Новый подход.

  • Если вы перетащите файл или папку в пакет или передадите хотя бы один файл / папку
  • следующий пакет изменится на указанную папку, а
  • обработает все PDF-файлы в этой папке, объединив их в binder.pdf
  • , и в конечном итоге существующий файл binder.pdf переименуется в binder.bak.pdf

:: Q:\Test\2018\06\06\SO_50728273.cmd
@echo off
setlocal enabledelayedexpansion
if "%~1" neq "" (
  Echo %~a1|findstr "d" 2>&1>Nul && Pushd "%~f1" || Pushd "%~dp1"
) else (
  Echo No arguments, need a path& pause & goto :Eof
)
Del /f binder.bak.pdf 2>&1>Nul
if exist binder.pdf Ren binder.pdf binder.bak.pdf
pdftk.exe *.pdf cat output binder.pdf
PopD

Невозможно знать, какие аргументы вы передаете в пакетную диагностику, невозможно.% * заменяется всеми передаваемыми аргументами, расположение вывода определяетсяпуть к первому аргументу% ~ dp1

Я запускал вашу партию на своем виртуальном диске a:

Dir до:

> dir A:\
 Verzeichnis von A:\

2018-06-06  21:57            65.381 SO_5072812.pdf
2018-06-06  21:56               163 SO_50728273.cmd
2018-06-06  21:55            60.649 SO_50728273.pdf
               3 Datei(en),        126.193 Bytes
               0 Verzeichnis(se),  1.049.452.544 Bytes frei

И после (я назвал партию SO_50728273.cmd):

> SO_50728273.cmd a:\*.pdf

> dir
 Verzeichnis von A:\

2018-06-06  21:58           125.756 binder.pdf
2018-06-06  21:57            65.381 SO_5072812.pdf
2018-06-06  21:56               163 SO_50728273.cmd
2018-06-06  21:55            60.649 SO_50728273.pdf
               4 Datei(en),        251.949 Bytes
               0 Verzeichnis(se),  1.049.260.032 Bytes frei
...