Printing Applescript:打印第一页或其他特定页

Printing Applescript:打印第一页或其他特定页,printing,applescript,osx-mavericks,sandbox,Printing,Applescript,Osx Mavericks,Sandbox,如何指示应用程序或打印机仅打印文件的第一页、页面范围或奇数页或偶数页?我在预览应用程序的帮助下尝试了这一点,它看起来很有希望: set theFile to "[file-path/file]"" tell application "Preview" activate print theFile with properties {target printer:"Printer", ending page:1} without «class pdlg» --these properties isn

如何指示应用程序或打印机仅打印文件的第一页、页面范围或奇数页或偶数页?我在预览应用程序的帮助下尝试了这一点,它看起来很有希望:

set theFile to "[file-path/file]""
tell application "Preview"
activate
print theFile with properties {target printer:"Printer", ending page:1} without «class pdlg»
--these properties isn't available for the printer app, here just limiting amount of printed pages
quit
end tell
但有了这个,我被沙盒进程咬了一口,沙盒进程告诉我文件无法打开打印,我在日志中得到了一个
deny file read data
结果

在adamh提出的CUPS建议中,我遇到了umlauts问题,还有其他执行问题,可能也是因为沙箱规则。代码可以从命令行工作,但在以自动方式调用时不能工作


我试图在参考资料中查找print命令的有用示例,在我的书中,并尝试搜索在线苹果参考资料,但我似乎找不到许多适合当前使用沙盒的示例(如果有的话)

您可以通过命令行工具
lp
lpr
编写打印脚本。 这些与CUPS(通用Unix打印系统)通信

要以页面/范围为目标,请执行以下操作:

lp -o page-ranges=2-4 "my_great_document.pdf"
要从applescript调用它,请使用
DoShell脚本

e、 g,


如需了解更多信息,请参阅:

谢谢您的提示。但是,这会导致名称中包含UMLAUT或其他特殊字符的文件出现一个大问题,这是一个与applescript无关的问题。我使用引用的路径来处理空格。也许我可以将文件路径转换为Bash可以处理的任何文件路径。尝试将您的文档路径用“”引号括起来,我刚刚尝试了这一点,效果很好:lp“hëllö.rtf”,如果您可以更详细地描述umlauts导致的问题/错误。是的,我使用了变量$1,因为我找不到在shell脚本中使用Applescript中设置的path变量的方法,所以受您的CUPS想法的启发,我改为使用一个完整的shell脚本。起初,它失败了,引用权限表示涉及沙箱,但围绕它的引号工作得很好:
lp“$1”
。编辑了您的回复,但请再次编辑您的回复,因为我的投票现在已锁定,即使我已编辑。(也许我只需要等待审查)
do shell script "lp -o page-ranges=2-4 'my_great_document.pdf'"