我在MAC上工作,我想使用Qt或APplescript将.bmp和.JPEG文件转换为.pDF文件格式。我的操作系统版本是10.6。
由于
答案 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结构非常有用。