Apple скрипт для приложения Sketch

Я пытаюсь написать Apple Script для Sketch.app (com.bohemiancoding.sketch3), Я хочу создать файл изображения, который можно отобразить в браузере из документа Sketch.

И когда я открываю словарь Sketch.app в Script Editior я вижу

saveable file format enum
    Sketch : The native Sketch 2 file format
    PDF : Portable Document Format
    TIFF : Tagged Image File Format

Так что я подумал о генерации TIFF используя следующий скрипт, но он не работает

tell application "Sketch"
  set curdoc to document 0    
  save curdoc in "/Users/mirza/Downloads/mew2" as TIFF
end tell

Я могу создавать эскизы в .sketch форматировать с помощью команды сохранения, но не PDF или TIFF. Эскиз поддерживает PDF и TIFF, используя скрипт Apple?

Или есть ли другой способ для этого.

Обновить

Я изменил путь к формату скрипта Apple и установил индекс документа на 1. Теперь скрипт выглядит так

set thisFilePath to (POSIX file "/Users/mirza/Downloads/mew2")
log thisFilePath
tell application "Sketch"
    curdoc to document 1
    save curdoc in thisFilePath as TIFF -- Tried with quotes as well, gives same error
end tell

Но когда я запускаю скрипт, я получаю следующую ошибку

Result:
error "Sketch got an error: Can’t continue curdoc." number -1708

Обновление 2

Исправлена ​​опечатка

set thisFilePath to (POSIX file "/Users/mirza/Downloads/mew2")
log thisFilePath
tell application "Sketch"
    set curdoc to document 1
    log (path of curdoc)
    save curdoc in thisFilePath as "TIFF"
end tell

Но когда я запускаю скрипт, я получаю следующую ошибку

Result:
error "Sketch got an error: The document cannot be exported to the \"TIFF\" format." number -50

1 ответ

В вашем коде есть много неправильных вещей, но, для начала, вам будет трудно получить точные ответы, используя программное обеспечение, которое больше не доступно. Sketch уже некоторое время находится в версии 3, и словарь AppleScript, вероятно, изменился. При этом, вот некоторые мысли о вашем коде:

Если это то, что читает словарь Sketch 2 AS, то функциональность AS изменилась в v3. Я бы хотел помочь, но я нигде не могу найти v2, поэтому я могу делать это только в темноте.

set thisFilePath to choose file name--use this to select a new file;
------- a Mac AppleScript path is returned (a file specification,
------- actually, which is different from a string or alias
------- (but an alias is kind of like a file spec)
tell application "Sketch"
    set curdoc to document 1--not zero-based; 1 is frontmost doc
    save curdoc in thisFilePath as "TIFF"--*this is a guess
end tell

Итак, я не знаю, что это в прошлом save линия подойдет, но это может сработать. В Sketch 3 формат "TIFF" не разрешен для сохранения, но он имеет as параметр как часть сохранения, который должен быть связан с текстовой строкой, представляющей формат (например, "TIFF", выше). Эскиз 2, кажется, имеет другую схему (параметр с as это не строка). Если я сохраню без as параметр в Sketch 3, он сохраняется в собственном формате Sketch. Так что вы можете попробовать это без кавычек (как у вас). Я просто делаю то, что говорит мне словарь v3. Вот несколько решений и советов:

  1. document 1 должен работать, чтобы ссылаться на передний документ;

  2. Если вы хотите по какой-то причине записать свой путь с помощью POSIX (как вы это сделали), вы можете использовать

    POSIX-файл "/Users/mirza/Downloads/mew2"

вернуть путь AppleScript в стиле Mac, который имеет такую ​​форму:

"yourHardDriveName:Users:mirza:Downloads:new2"

Вы также можете получить то, что у меня здесь, как "yourHardDriveHame:", выполнив

tell application "Finder" to set sDr to startup disk as string

затем конкат, делая

sDr & "Users:mirza:Downloads:new2"

Вы также можете сделать

tell application "Finder" to set myHome to home as string

который должен вернуть путь в стиле Mac к домашней папке. (И да, есть и другие пути, которые Finder позволяет вам найти).

Там есть что поиграть.

Другие вопросы по тегам