drondo
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Уважаемые гуру, прошу помочь с батником. Прелюдия: Имеется каталог с разными файлами, в нем так же могут быть а могут и не быть подкаталоги тоже с разными файлами. Имеется замечательная программа Ghostscript c помощью которой можно объединять несколько pdf или ps файлов в один. Синтаксис объединения такой: Код: gswin64c.exe -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="out.pdf" "input1.pdf" "input2pdf" | Так же программа умеет объединять файлы по списку Код: gswin64c.exe -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="out.pdf" @list.lst | где list.lst это обычный текстовый файл где построчно выведены полные имена файлов. но пара но: 1. Через список нужно передавать полные имена файлов, обязательно в кавычках если есть пробелы 2. Программа не воспринимает файлы из списка если есть не латинские символы. Этот баг присутствует только если входные файлы заданы списком а не явно по именам. Если объединять, явно задавая входные имена файлов, то нет проблем с кириллицей. в качестве временного решения с помощью гугла, справки и курения разных форумов родилось такое страшное дитя: Код: chcp 1251 dir /a-d /b /s "*.pdf">>"list.txt" for /f "tokens=*" %%a in (list.txt) do echo %%a^">>2.txt for /f "tokens=*" %%a in (2.txt) do echo ^"%%a>>list.lst gswin64c.exe -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="out.pdf" @list.lst del 2.txt del list.txt del list.lst | копирую нужные pdf файлы в временный каталог без кирилицы, файлы имеют вид 1-2 %name%.pdf 3-8 %name%.pdf и т.д., это страницы из альбома документации, заодно он легко сортируется по страницам. переименовываю их с помощью тотал коммандера, имя файла делаю просто 1.pdf, 2.pdf и т.п. и запускаю батник выше. он создает файл с полными именами, потом добавляет 2мя строками кавычки в начало и конец каждой строки, потом вызов ghostscript для объединения по списку, и удаление оставшегося мусора. Ключ /s используется потому что нужны полные имена файлов, но из-за рекурсивной обработки нужно копировать в другой каталог где нет подкаталогов с файлами. Есть решение? Можно ли это дело еще более автоматизировать? 1. Выбрать все PDF файлы в указанном каталоге без подкаталогов 2. передать этот список файлов в ghostscript. думается что нужно через временную папку скопировать, переименовать по маске, главное сохранить сортировку, передать в ghostscript список с полными путями, получить выходной файл out.pdf, скопировать его в текущий каталог и удалить весь оставшейся мусор. Идеальное решение это было бы Цитата: выделить нужные pdf файлы в тотал коммандере insert-ом и нажать кнопку на панели, в текущем каталоге появился объединенный PDF | , за такое даже пивом в нерезиновой проставлюсь
---------- ...Умное лицо — это ещё не признак ума, господа! ...Улыбайтесь, господа… Улыбайтесь… |
| Всего записей: 464 | Зарегистр. 28-10-2005 | Отправлено: 09:22 10-02-2016 | Исправлено: drondo, 09:31 10-02-2016 |
|