提前感谢您的帮助。
Applescript新手。 尝试打开预览文件夹中的所有文件并保存。 问题是,保存会在一半的时间内弹出一个对话框,这需要我坐在那里按回车。
代码:
tell application "Finder"
set fl to files of folder POSIX file "/Users/myname/Desktop/myfolder/" as alias list
end tell
repeat with f in fl
tell application "Preview"
activate
open f
# Trying to save before the window has appeared will fail.
# Note: - This assumes that NO window was initially open.
# - The code should be made more robust to eventually time out.
repeat until (count of windows) > 0
delay 0.3
end repeat
save front document
close front document
end tell
end repeat
感谢您的帮助
答案 0 :(得分:0)
我制作了几个PDF文件并从不同的网站下载,我得到版本1.3,1.4,1.5,1.7,...但没有1.6的样本!对于他们所有人都没有问题。
无论如何,因为我无法重现你所拥有的东西,所以采取了不同的方法。
1)我在脚本顶部添加了一个编码/版本列表列表,可能需要特殊处理(如点击返回键)。您当然可以修改这两个列表来管理您可能拥有的其他案例。
2)我更改了脚本以允许脚本获取pdf的编码和版本值。这是通过shell命令“mdls”使用聚光灯数据库来完成的。我使用它2次来获得版本和编码特性。 shell命令返回我们想要获取的值之前和之后的字符,因此我使用text x thru 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
我非常有兴趣获得有关此版本的反馈。
答案 1 :(得分:0)
在没有&#34的情况下保存;另存为"弹出对话框,在f"中添加"。这里" f"是文件名。你也可以放入不同的路径。
save front document in f