2013-07-25 2 views

ответ

4

Оказалось, что OSX имеет утилиту командной строки, полезную для такого рода вещей, которая называется sips. Я отправляю это в другом ответе, так как это совершенно другой подход, чем сценарий пользовательского интерфейса в моем другом ответе.

Вы можете создать небольшой скрипт обертку оболочки, чтобы сделать то, что вам нужно:

#!/bin/bash 

sips -s format pdf "$1" --out "${1%.*}.pdf" 

Сохранить как, например, img2pdf, а затем дать ему права на исполнение:

chmod +x img2pdf 

Затем вы можете использовать следующие чтобы сделать ваши конверсии:

./img2pdf.txt "/Users/mmouse/Desktop/Screen Shot 2013-07-22 at 9.00.36 AM.png" 

Если вы действительно не хотите этого в сценарии оболочки и должны иметь Applescript, то вы можете вызвать соответствующие команды из Applescript:

set ImgFile to "/Users/mmouse/Desktop/Screen Shot 2013-07-22 at 9.00.36 AM.png" 

do shell script "imgfile=" & quoted form of ImgFile & " ; sips -s format pdf \"$imgfile\" --out \"${imgfile%.*}.pdf\"" 

В качестве отправной точки интереса, если вам нужно сделать обратное, т.е. преобразовать в .pdf.PNG, то Image Events scripting extension в OSX может сделать это легко:

set ImgFile to "/Users/mmouse/Desktop/Screen Shot 2013-07-18 at 2.52.47 PM.pdf" 
tell application "Image Events" 
    set Img to open file ImgFile 
    save Img as PNG 
end tell 

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

+0

Привет, Спасибо за повтор. В вашем сценарии преобразование изображения в png в pdf успешно. Но класс события события для сценария яблока не конвертирует pdf в png.when я запускаю этот скрипт яблока, ваш скрипт поврежден .pdf-файлу. – user1705318

+0

Мой следующий вопрос: как преобразовать изображение .jpeg в ICNS, TGA, GIF, exr и raw format.If возможно, пожалуйста, переиграйте меня. – user1705318

+0

Я думаю, что это более специализированные форматы. Похоже, что глотки также могут записывать файлы .TGA, но, возможно, для этого требуется программное обеспечение для управления изображениями сторонних производителей. Я задал бы другой вопрос, возможно, включая теги [image] и [image-manipulation] и [image-processing] –

0

Там в "Новый PDF из изображений" Automator действий ... так что просто использовать рабочий процесс Automator.

+0

нормально, но я не использую действие automator с программированием. Отправьте мне скрипт, который используется в программе. – user1705318

0

Это можно сделать гораздо более изящно, но вот быстро UI element script, чтобы запустить приложение предварительного просмотра, чтобы сделать это.

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

set ImgFile to "/Users/mmouse/Desktop/Screen Shot 2013-07-18 at 2.52.47 PM.png" 
do shell script "open -a Preview " & quoted form of ImgFile 
tell application "Preview" 
    activate 
end tell 
tell application "System Events" 
    -- turn on UI automation - may throw a permissions dialog 
    if UI elements enabled is false then 
     set UI elements enabled to true 
    end if 
    click menu item "Export…" of menu 1 of menu bar item "File" of menu bar 1 of application process "Preview" 
    delay 1 -- sigh - wait for window to open 
    click pop up button 1 of group 1 of sheet 1 of window 1 of application process "Preview" 
    click menu item "PDF" of menu 1 of pop up button 1 of group 1 of sheet 1 of window 1 of application process "Preview" 
    click UI element "Save" of sheet 1 of window 1 of application process "Preview" 
    click menu item "Close Window" of menu 1 of menu bar item "File" of menu bar 1 of application process "Preview" 
end tell 

В общем, эти ключевые слова позволяют скрипту взаимодействовать непосредственно с определенными элементами пользовательского интерфейса программы. Поиск google для «applescript ui scripting» - есть несколько хороших страниц на эту тему.

Например:

click menu item "Export…" of menu 1 of menu bar item "File" of menu bar 1 of application process "Preview" 

Эта линия буквально нажимает на «Экспорт ...» пункт в меню «Файл» приложения «Предварительный просмотр». Таким образом открывается диалоговое окно «Экспорт ...». Остальные строки затем взаимодействуют с этим диалогом для экспорта изображения в файл .pdf.

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

Если вы хотите сделать больше скриптов пользовательского интерфейса, функция записи в приложении Automator очень удобна - вы можете буквально выбирать и копировать записанные шаги из этого приложения и вставлять их в редактор Applescript, где они будут отображаться как эквивалентные приложения элементы. Кроме того, инспектор элементов интерфейса или инспектор доступности (в xcode) очень полезны для определения структуры пользовательского интерфейса для конкретного приложения, которое вы хотите контролировать.

+0

ОК, спасибо, но я не понимаю меню кликов, всплывающее окно, элемент пользовательского интерфейса, ключевые слова группы. Моя основная проблема заключается в том, что в этом скрипте путь ImgFile является исходным путем, я хочу преобразовать это изображение в формат PDF-файла на тот же путь. – user1705318

+0

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

+0

В этом скрипте, через ошибку в строке пункта меню щелчка. см. снимок экрана. – user1705318

Смежные вопросы