Я сделал несколько PDF файлов и загрузить с различных сайтов, и я получаю выборку из версии 1.3, 1.4, 1.5, 1.7, ..но нет 1.6! Для них не проблема.
В любом случае, потому что я не смог воспроизвести то, что у вас есть, я принял другой подход.
1) Я добавил в начало скрипта список списков кодирования/версии, который может потребовать специальной обработки (например, клавиши возврата возврата). Вы можете, конечно, изменить эти 2 списка, чтобы управлять другими случаями, которые у вас могут быть.
2) Я изменил свой сценарий, чтобы сценарий мог получить кодировку и значения версии pdf. Это делается с помощью базы данных прожектора через командную команду «mdls». Я использую его 2 раза, чтобы получить характеристики версии и кодирования. Команда оболочки возвращает символы до и после значения, которое мы хотим получить, поэтому я использую текст x через Y для извлечения кодировки и самой версии.
3) если PDF-версия/кодировка указаны в предопределенном списке, который требует специальной обработки, то я установил OKReturn в true.
4) Сразу после инструкции сохранения скрипт теперь проверяет, является ли значение OKReturn истинным. то я попрошу сценарий нажать клавишу возврата для вас. вам, возможно, придется отрегулировать эту часть, например, это может быть не только 1 возврат, но 2 или что-то еще. это то, что я не смог проверить, потому что все мои pdf работают. имейте в виду, что, поскольку я имитирую ключ возврата, вы не должны использовать клавиатуру во время запуска скрипта.
Основываясь на моем тесте, я не думаю, что кодировка является критерием блокировки. Я думаю, что версия 1.6 есть. Вот сценарий. Она включает в себя комментарий, чтобы вы смогли настроить его:
набор CodingReturn к { "Mac OS X 10.7.3 Quartz PDFContext"} набор VersionReturn до { "1,6"}
set myFolder to choose folder
tell application "Finder"
set fl to files of myFolder as alias list
end tell
repeat with f in fl
set FVersion to do shell script "mdls -name kMDItemVersion " & quoted form of POSIX path of f
set FEncoding to do shell script "mdls -name kMDItemEncodingApplications " & quoted form of POSIX path of f
if (length of FVersion) > 21 then set FVersion to text 19 thru -2 of FVersion -- extract only version number
if (length of FEncoding) > 42 then set FEncoding to text 38 thru -4 of FEncoding -- extract only the coding
set OKReturn to ((FVersion is in VersionReturn) and (FEncoding is in CodingReturn)) -- special treatment true/false
tell application "Preview"
activate
open f
repeat until (count of windows) > 0
delay 0.3
end repeat
save front document
if OKReturn then -- we need special key to be pressed
tell application "System Events" to keystroke return
end if
close front document
end tell
end repeat
Я был бы очень заинтересованы, чтобы получить ваши отзывы об этой версии.
Глядя на ваш сценарий, кажется, вы просто открываете и сохраняете свои файлы. не быстрее ли просто перемещать или дублировать файлы в нужную папку? или вы хотите изменить формат файла (по умолчанию image = jpg)? – pbell
Файлы представляют собой формы PDF. Я пытаюсь собрать данные ответа из форм, но в какой-то момент некоторые из версий pdfs изменились, и я получаю сообщение об ошибке при попытке добавить многие файлы в форму ответа. По-видимому, эта проблема возникла, и решение заключалось в том, чтобы сохранить файлы в предварительном просмотре, поскольку он автоматически преобразует их в ту же версию pdf (что я раньше не знал). Это работало в малогабаритных тестах.Попытка сделать applescript, чтобы открыть и сохранить все файлы в предварительном просмотре, чтобы получить их для всех, будет одинаковой версией в формате pdf. –
Я проверил ваш скрипт с несколькими файлами PDF (разная версия с 2007 по 2016 год, с веб-сайтов или дома). нет проблем. когда ваш скрипт останавливается, прося вас нажать клавишу ввода, это, вероятно, потому, что PDF-код является чем-то особенным. как только мы узнаем, что делает эту версию файла особенной, мы могли бы нажать enter в скрипте, но мы должны знать характеристику файла, чтобы позволить скрипту знать. можете ли вы видеть различия между файлом, который работает, и тем, который требует ввода? в информационном окне, это специальная версия? специальное кодирование? – pbell