У меня есть несколько файлов PDF, и я хотел бы объединить эти файлы с помощью pdftk. Я могу сделать это как это
C:\pdftk *.pdf cat output merged.pdf
Это объединяет файлы с помощью их алфавитного порядка, но я хотел бы заказать файлы с помощью их даты создания (метка времени). Как это возможно? Я использую Победу XP.
Я думаю, что лучший способ добавляет даты к именам файлов. Можно сделать это с Объемом, Переименовывают Утилиту, это - очень мощная утилита и свободный.
Или, можно использовать другое программное обеспечение для объединений/разделения файлов PDF с gui, как PDFsam.
Можно создать список файлов PDF, который заказан датой создания:
dir /b /tc /od *.pdf > my-pdf-filelist.txt
(Если Вы хотите список - вместо отсортированного ко времени создания - сортировка, случающаяся использованием времени доступа'/ta
'вместо'/tc
'; если Вы хотите заказать ко времени изменения, используйте'/tw
'.)
Затем используйте этот список для создания другого временного listfile, тот, который содержит метку времени и имена файлов PDF с добавленными датами + времена на той же строке:
for /f "usebackq" %i in (my-pdf-filelist.txt) ^
do (echo. %~ti %~nxi >> my-pdf-filelist.2)
Теперь проверьте если Ваш список файлов my-pdf-filelist.2
действительно содержит строки, бывшие похожие на это:
05/27/2009 06:08 AM fontproblems-in-footer-16_9_1557.pdf
01/20/2010 09:22 AM trainschedule-hannover.pdf
06/05/2010 07:30 PM Figure_001-a.pdf
В зависимости от установки для Вашего language+locale Ваш формат метки времени может отличаться, и Вы, возможно, должны адаптировать следующий шаг. В моем случае я должен заботиться о, "/PM" штука, а также datestring, чтобы удостовериться, что имена файлов позже действительно будут в алфавитном порядке, который совпадает с их порядком метки времени.
Наконец, используйте этот временный listfile для переименования исходных имен файлов так, чтобы они содержали свои метки времени как префикс к их настоящим именам. Но сначала протестируйте намеченную команду как это:
for /f "usebackq tokens=1,2,3,4,5,6,7 delims=/: " %i in (my-pdf-filelist.2) ^
do (echo. "%o" will be renamed to: "%k-%j-%i-%n-%l-%m-%o")
Тщательно проверьте, работало ли это, как предназначено. Наконец, сделайте реальное переименование:
for /f "usebackq tokens=1,2,3,4,5,6,7 delims=/: " %i in (my-pdf-filelist.2) ^
do (ren "%o" "%k-%j-%i-%n-%l-%m-%o")
Теперь, когда Ваши PDFs называют способом, который делает 'алфавитный порядок' == 'порядок метки времени', можно просто работать pdftk.exe
:
pdftk.exe *.pdf cat output merged.pdf