我经常需要将艺术文件的屏幕截图保存为两个不同的文件。第一个是PDF,文件名末尾有" _prv" 。第二个是带有" _thm" 文件名的JPG。
因此,文件名的例子是:
1733419_prv.pdf
1733419_thm.jpg
" 1733419" 部分将是特定于作业的,如果脚本会提示用户输入该信息,那将会很好。如果脚本可以提示用户输入新文件的位置也会很好。
这可能是AppleScript还是Photoshop脚本?
非常感谢您的帮助! 布赖恩
答案 0 :(得分:0)
更新了答案
我稍微改进了脚本。如果在输入作业参考编号时选择Cancel
,它现在将无效并正常退出。它现在还将处理作业参考号中的空格。它还会在桌面上创建一个输出目录,因此如果输入作业参考编号1234
,您将在桌面上看到一个名为1234
的目录(文件夹),其中包含2个输出文件。< / p>
#!/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
原始答案
我希望这接近你的意思。将其作为grab
保存在HOME目录中,然后启动终端并键入:
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工具。