-1

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

谢谢

在此处输入图像描述

4

3 回答 3

6

事实证明,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 脚本扩展可以轻松做到这一点:

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

但不幸的是,图像事件脚本扩展只允许读取而不是写入 PDF 文件,因此在您的特定情况下没有用处。

于 2013-07-26T17:51:15.037 回答
0

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

于 2013-07-25T08:12:07.947 回答
0

这可以写得更优雅,但这里有一个快速的UI 元素脚本来驱动 Preview 应用程序执行此操作。

设置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 Element Inspector 或 Accessibility Inspector(在 xcode 中)对于确定您希望控制的给定应用程序的 UI 结构非常有用。

于 2013-07-26T02:32:06.003 回答