我正在尝试为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

最佳答案

您的代码有很多问题,但是,首先,您将发现使用不再可用的软件很难获得确定的答案。 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”) )。 Sketch 2似乎有不同的方案(带有as的参数不是字符串)。如果我在Sketch 3中不使用as参数进行保存,它将以Sketch的本机格式保存。因此,您可以尝试不使用引号的方式(就像您一样)。我只是在按照v3词典的指示执行操作。
以下是一些解决方案和提示:


document 1应该用来引用最前面的文档;
如果您出于某种原因想要使用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还提供了其他路径)。

有一些东西可以玩。

关于macos - 适用于Sketch App的Apple脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32601184/

10-09 06:25