如何在MAC上转换图像格式

时间:2013-07-25 04:01:47

标签: macos qt applescript

我在MAC上工作,我想使用Qt或APplescript将.bmp和.JPEG文件转换为.pDF文件格式。我的操作系统版本是10.6。

由于

enter image description here

3 个答案:

答案 0 :(得分:4)

事实证明,OSX的命令行实用程序对于这种称为sips的东西很有用。我在另一个答案中发布这个,因为这是一个完全不同于我在其他答案中的UI脚本的方法。

您可以创建一个小包装外壳脚本来执行您需要的操作:

#!/bin/bash

sips -s format pdf "$1" --out "${1%.*}.pdf"

将其保存为例如img2pdf,然后赋予它执行权限:

chmod +x img2pdf

然后您可以使用以下命令进行转换:

./img2pdf.txt "/Users/mmouse/Desktop/Screen Shot 2013-07-22 at 9.00.36 AM.png"

如果你真的不想在shell脚本中使用它并且必须有一个Applescript,那么你可以从Applescript中调用相关的命令:

set ImgFile to "/Users/mmouse/Desktop/Screen Shot 2013-07-22 at 9.00.36 AM.png"

do shell script "imgfile=" & quoted form of ImgFile & " ; sips -s format pdf \"$imgfile\" --out \"${imgfile%.*}.pdf\""

作为一个兴趣点,如果你需要做相反的事情,即将.pdf转换为.png,那么OSX中的Image Events scripting extension可以很容易地做到这一点:

set ImgFile to "/Users/mmouse/Desktop/Screen Shot 2013-07-18 at 2.52.47 PM.pdf"
tell application "Image Events"
    set Img to open file ImgFile
    save Img as PNG
end tell

但不幸的是,Image Events脚本扩展只允许读取和不写入PDF文件,因此在您的特定情况下无用。

答案 1 :(得分:0)

有一个“来自图像的新PDF”自动操作...所以只需使用自动机工作流程。

答案 2 :(得分:0)

这可以更优雅地编写,但这里有一个快速UI element script来驱动预览应用程序执行此操作。

ImgFile设置为您喜欢的任何文件名 - 您可以修改脚本,以便可以传递参数。

set ImgFile to "/Users/mmouse/Desktop/Screen Shot 2013-07-18 at 2.52.47 PM.png"
do shell script "open -a Preview " & quoted form of ImgFile
tell application "Preview"
    activate
end tell
tell application "System Events"
    -- turn on UI automation - may throw a permissions dialog
    if UI elements enabled is false then
        set UI elements enabled to true
    end if
    click menu item "Export…" of menu 1 of menu bar item "File" of menu bar 1 of application process "Preview"
    delay 1 -- sigh - wait for window to open
    click pop up button 1 of group 1 of sheet 1 of window 1 of application process "Preview"
    click menu item "PDF" of menu 1 of pop up button 1 of group 1 of sheet 1 of window 1 of application process "Preview"
    click UI element "Save" of sheet 1 of window 1 of application process "Preview"
    click menu item "Close Window" of menu 1 of menu bar item "File" of menu bar 1 of application process "Preview"
end tell

通常,这些关键字允许脚本直接与程序用户界面的特定元素进行交互。在谷歌搜索“applescript ui scripting” - 这个主题有几个很好的页面。

例如:

click menu item "Export…" of menu 1 of menu bar item "File" of menu bar 1 of application process "Preview"

此行直接点击“预览”应用程序的“文件”菜单中的“导出...”项。这样就打开了“导出...”对话框。然后剩余的行与该对话框交互以将图像导出到.pdf文件。

我认为编写的脚本应该将图像转换为同一文件夹中的.pdf,完全符合您的要求。

如果你想做更多的UI脚本,Automator应用程序中的记录功能非常方便 - 您可以从这个应用程序中逐字地选择和复制记录的步骤,并将它们粘贴到Applescript编辑器中,在那里它们将显示为等效的applescript元素。 UI元素检查器或辅助功能检查器(在xcode中)对于确定您希望控制的给定应用程序的UI结构非常有用。