【问题标题】:Applescript to Save File as Two Separate File Formats with Fixed ExtensionsApplescript 将文件另存为具有固定扩展名的两种单独文件格式
【发布时间】:2014-11-24 13:55:31
【问题描述】:

我经常需要将艺术文件的屏幕截图保存为两个不同的文件。第一个是在文件名末尾带有 "_prv" 的 PDF。第二个是带有 "_thm" 文件名的 JPG。

因此,文件名的示例如下:

1733419_prv.pdf
1733419_thm.jpg

"1733419" 部分将是特定于工作的,如果脚本会提示用户输入该信息,那就太好了。如果脚本可以提示用户新文件应该保存到的位置,那也很好。

这一切都可以作为一个 applescript 还是一个 Photoshop 脚本?

非常感谢您的帮助! 布莱恩

【问题讨论】:

  • 您的问题很不清楚...为什么要截屏,您使用的应用程序是否无法正确保存文件本身?您使用的是什么应用程序?谁/什么应该问你工作参考号?您的应用程序可以自己生成其中一个文件并允许自动创建另一个文件吗?
  • 截屏的原因是文件的其他两个版本是原始文件的缩略图。缩略图不需要与原始文件一样大。如您所知,屏幕截图在 72DPI 时非常漂亮且紧凑,并且仍然保留了在 Photoshop 中缩小尺寸可能会影响的清晰度。所有艺术文件都在 Photoshop 中查看。我过去曾使用过会提示您输入信息的脚本,例如此特定实例中的作业编号。不确定我是否理解您的最后一个问题,否则我肯定会解决。
  • 仍然不确定我是否正确...所以您的原件是高分辨率 PSD 文件,您可以在 Photoshop 中查看它们。然后你想弹出一些东西并询问你的工作参考,你会在一个对话框中输入它,然后它会生成两个 72 dpi 文件,一个是 PDF,另一个是 JPEG。那是对的吗?您如何设想上述过程将如何开始 - 通过转到 Photoshop 的“文件”->“脚本”菜单,或通过双击 Finder 或其他中的某些内容?
  • 是的,完全正确。原件是高分辨率 PSD 文件。
  • 我希望发生的情况是屏幕截图仍然是手动拍摄的。截取屏幕截图后,用户将 PNG 文件拖到脚本中,然后创建两个缩略图。该脚本将提示用户输入作业编号,然后保存这两个文件。这一切有意义吗?我意识到这有点令人费解。

标签: macos file applescript photoshop finder


【解决方案1】:

更新答案

我对脚本进行了一些改进。如果您在输入 Job Reference 编号时选择 Cancel,它现在不会执行任何操作并正常退出。它现在还将处理作业参考编号中的空格。它还会在您的桌面上创建一个输出目录,因此如果您输入作业参考编号 1234,您将在桌面上看到一个名为 1234 的目录(文件夹),其中包含 2 个输出文件。

#!/bin/bash

# Ask user for job reference, store in $ref
ref=$(osascript -e 'Tell application "System Events" to display dialog "Enter Job Reference:" default answer ""' -e 'text returned of result' 2>/dev/null)

# Quit without doing anything if user didn't enter anything
[ -z "$ref" ] && exit

# Make a place for the output files
DIRECTORY="$HOME/Desktop/$ref"
mkdir "$DIRECTORY" 2> /dev/null   # Don't worry if it already exists
cd "$DIRECTORY"

# Get user to select area to grab, then save as JPEG
screencapture -i -t jpg "${ref}_thm.jpg"

# Convert JPEG to PDF
sips -s format pdf "${ref}_thm.jpg" --out "${ref}_prv.pdf" > /dev/null 2>&1

原答案

我希望这与您的意思相近。将其保存在您的 HOME 目录中为grab,然后启动终端并输入:

chmod +x grab

这将使文件可执行。

#!/bin/bash

# Ask user for job reference, store in $ref
ref=$(osascript -e 'Tell application "System Events" to display dialog "Enter Job Reference:" default answer ""' -e 'text returned of result' 2>/dev/null)

# Get user to click on a window to grab, then save as JPG
screencapture -w -i -t jpg ${ref}_thm.jpg

# Convert JPG to PDF
sips -s format pdf ${ref}_thm.jpg --out ${ref}_prv.pdf > /dev/null 2>&1

您现在可以输入:

./grab

或在 Finder 中双击名为 grab 的文件。

它会要求您提供工作参考,然后开始屏幕抓取。您应该单击一个窗口来告诉它您指的是哪个窗口。然后它将创建您要求的两个文件。

这种方法的优点是不需要安装额外的软件 - 例如 ImageMagick 或任何其他软件,因为它只使用内置的 OSX 工具。

【讨论】:

  • 谢谢 - 我很想试试这个,但我不确定这个过程。我将脚本作为文本文件保存在我的主文件夹中......称为“grab”。然后,我在终端中输入了“chmod +x grab”命令。终端只是说“没有这样的文件或目录”。我哪里做错了?
  • 您的文本编辑器可能添加了诸如.txt 之类的扩展名。在终端中,输入ls grab*,它将列出所有文件。您应该会看到一个名为 grab.txt 或类似名称的名称,您可以重命名它,使其没有像这样的扩展名:mv grab.txt grab。然后继续chmod... 的事情。
  • 谢谢。我能够将抓取文档的格式更改为可执行文件,但是在启动 exe 之后..它看起来不起作用。我双击它,它似乎只是出错了。这是文本.. CLEMD-A03485:~ e0012245$ /Volumes/Work/Users/e0012245/grab ;出口; /Volumes/Work/Users/e0012245/grab:第 1 行:{rtf1ansiansicpg1252cocoartf1187cocoasubrtf400:找不到命令 /Volumes/Work/Users/e0012245/grab:第 2 行:意外标记附近的语法错误 }' /Volumes/Work/Users/e0012245/grab: line 2: {\fonttbl\f0\fnil\ fcharset0 Consolas;}' 注销 [过程完成]
  • 您的文本编辑器已将其保存为 RTF 格式,但它需要是纯 ASCII 文本而不是 RTF。
  • 如果你不能让你的编辑器保存直接的、无格式的文本而不是 RTF,你可以小心地复制我的代码,不要包含任何无关的空格或字符,然后进入终端并输入 pbpaste > grab这会将复制的代码粘贴到名为grab的文件中。
猜你喜欢
  • 1970-01-01
  • 2022-08-11
  • 1970-01-01
  • 1970-01-01
  • 2021-02-14
  • 1970-01-01
  • 1970-01-01
  • 2015-01-25
  • 2011-05-15
相关资源
最近更新 更多