У меня есть несколько (много) многостраничных PDF-файлов, которые я пытаюсь преобразовать в файлы JPEG (один файл для каждой страницы каждого PDF) с помощью Ghostscript. У меня есть следующий пакетный файл, но я не могу заставить его работать правильно.Проблема с преобразованием нескольких файлов PDF в файлы JPEG с использованием Ghostscript из командного файла
for %%f in (*.pdf) do (
gswin64.exe -dNOPAUSE -dBATCH -sDEVICE=jpeg -r144 -sOutputFile=p%03d.jpg %%f
)
Петля, похоже, работает нормально в том смысле, что она открывает файлы. Это неправильно в «p% 03d.jpg» - я предполагаю, что цикл видит «% 0» и по какой-то причине вставляет имя командного файла. Я получаю следующее сообщение об ошибке:
**** Could not open the file pC:\Users\bmjones\Downloads\convert.bat3d.jpg
(«convert.bat» это имя пакетного файла)
Я предполагаю, что даже если бы я получил эту работу, я бы еще одна проблема. Когда я запускаю вручную:
gswin64.exe -dNOPAUSE -dBATCH -sDEVICE=jpeg -r144 -sOutputFile=p%03d.jpg [file name].pdf
Он отлично работает. Я получаю набор имен файлов 001.jpg, 002.jpg и т. Д. Но я хотел бы, чтобы они были пронумерованы по-разному. Так что, если мои первые два файла имеют 3 и 2 страницы, соответственно, я хотел бы иметь что-то вроде этого:
f1_pg1.jpg, f1_pg2.jpg, f1_pg3.jpg, f2_pg1.jpg, f2_pg2.jpg
Значит, 'gswi64.exe' использует знак процента в качестве шаблона в параметре' -sOutputFile'? Если вы делаете это из сценария '.bat', вам, вероятно, придется дважды нажимать'% ', поэтому он будет рассматриваться как знак буквального процента, а не аргумент или переменная сценария. Попробуйте '-sOutputFile = p %% 03d.jpg' – rojo
@rojo Это отлично работает, спасибо! Мне все еще нужно найти способ изменить заголовок файла в каждой итерации цикла, чтобы я не писал файлы, но это отличный первый шаг. – user2488818