Sketch App的Apple脚本

时间:2015-09-16 06:27:03

标签: macos cocoa applescript scripting-bridge sketch-3

我正在为 Sketch.app Apple Script写一个(com.bohemiancoding.sketch3)。我想要做的是,创建一些可以在Sketch文档中在浏览器中呈现的图像文件。

当我在Script Editior中打开 Sketch.app 字典时,我看到了

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。 Sketch是否支持使用Apple脚本的PDF和TIFF?

或者还有其他方法。

更新

我将路径更改为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 个答案:

答案 0 :(得分: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行会做什么,但它可能有效。 在草图3中,保存时不允许使用“TIFF”格式,但保存时会有as参数,应该与表示的文本字符串配对格式(如上面的“TIFF”)。草图2似乎有不同的方案(as的参数不是字符串)。如果我在Sketch 3中没有as参数进行保存,则会以Sketch的原生格式保存。所以你可以试试这个没有引号(就像你有)。我正在做v3字典告诉我要做的事情。 以下是一些解决方案和提示:

  1. document 1应该可以引用最前面的文档;

  2. 如果您出于某种原因想要使用POSIX写出您的路径 (就像你已经完成的那样),你可以使用

    POSIX文件“/ Users / mirza / Downloads / mew2”

  3. 返回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还有其他途径可以让你获得)。

    有一些东西可以玩。