Нужен пакетный скрипт для объединения PDF-файлов с PDFTK и размещения первой страницы на основе имени файла - PullRequest
0 голосов
/ 28 августа 2018

Так что я могу просто отлично использовать pdftk (это программа командной строки для объединения pdf), однако я хочу найти способ объединить страницы и всегда помещать конец pdf в Summary как первую страницу.

Мои файлы в следующем формате:

(Address) Summary.pdf
(Address) Top FG.pdf
(Address) Roof.pdf
(Address) Flashing.pdf

И может быть еще несколько, но это всегда в этом формате, но, очевидно, адреса всегда меняются. Я просто хочу, чтобы страница, заканчивающаяся в Сводке, была первой страницей, а остальная часть порядка меня не интересует.

Я знаю, что pdftk может комбинироваться следующим образом:

pdftk (Address) Summary.pdf (Address) Top FG.pdf (Address) Roof.pdf (Address) Flashing.pdf cat output Combined.pdf

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

1 Ответ

0 голосов
/ 28 августа 2018

Хорошо. Я обычно игнорирую этот тип вопросов (когда ОП не помогают нам решить их собственные проблемы ) ... Однако у меня сейчас есть немного свободного времени, так что мы идем!

Во-первых, ввод:

C:\Users\Antonio\Documents\test> dir
 El volumen de la unidad C no tiene etiqueta.
 El número de serie del volumen es: 0895-160E

 Directorio de C:\Users\Antonio\Documents\test

27/08/2018  09:38 p. m.    <DIR>          .
27/08/2018  09:38 p. m.    <DIR>          ..
27/08/2018  09:35 p. m.                20 (Address) Flashing.pdf
27/08/2018  09:35 p. m.                20 (Address) Roof.pdf
27/08/2018  09:35 p. m.                20 (Address) Summary.pdf
27/08/2018  09:35 p. m.                20 (Address) Top FG.pdf
27/08/2018  09:45 p. m.               274 test.bat
               5 archivos            354 bytes
               2 dirs  393,053,315,072 bytes libres

Обратите внимание, что входные файлы точно такие же , которые указаны в вопросе, и что файлы "все в одной папке" , как указано в OP.

Далее командный файл:

@echo off
setlocal EnableDelayedExpansion

set "files="
for %%a in (*.pdf) do (
   set "name=%%~Na"
   if "!name:~-7!" equ "Summary" (
      set "files=%%a !files!"
   ) else (
      set "files=!files! %%a"
   )
)

ECHO pdftk !files! cat output Combined.pdf

Наконец, вывод:

pdftk (Address) Summary.pdf  (Address) Flashing.pdf (Address) Roof.pdf (Address) Top FG.pdf cat output Combined.pdf

Обратите внимание, что этот вывод точно такой же , который был запрошен в вопросе. Это означает, что OP просто нужно удалить часть ECHO в последней строке, чтобы выполнить требуемую команду! (и что я никогда не буду изменять этот код ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...