运行 Automator 工作流在后台

Run Automator Workflow in background

尝试制作使用 "Convert to TXT Document" 将 pdf 转换为 txt 的 Automator 工作流程。但是在 运行ning 期间,Abbyy FineReader window 变为活动状态。是否可以 运行 在静音模式下或最小化 window?

您可以在脚本编辑器中尝试使用此 applescript,将文件路径替换为您的文件。我没有安装这个程序,所以我没有测试过。如果它不起作用,也许您可​​以以此为基础来获得您想要的结果。

tell application "FineReader" activate
tell application "System Events" set visible of process "FineReader" to false
tell application "FineReader"
   export to txt "/Path/to/filename/File_to_OCR.pdf" from file "/Path/to/filename/File_to_OCR.pdf"
end tell

这个 AppleScript 使用最新版本的 Sierra 对我有用。在我的系统上测试,它没有将 Abbyy FineReader 带到前台。

set thePDF to (choose file)

tell application "FineReader"
    set resultFile to export to txt thePDF ¬
        from file thePDF
end tell

您的新文本文件应出现在与原始 PDF 相同的目录中

我没有使用 Automator,所以我不知道您将使用哪种方法将 PDF 文件传递​​给此 AppleScript。出于测试目的,我使用了“选择文件”命令。如果您使用 Automator 传递您在之前的 Automator 操作中指定的 PDF 文件,则只需从代码中删除“选择文件”命令即可。无论如何,您需要做的就是在您的 Automator 工作流程中添加一个“运行 AppleScript”命令。

如果要删除“选择文件”命令,则需要重新定义变量 thePDF 的值


注意 FineReader 实际上有一个内容丰富的 AppleScript 词典。我的回答包括用于导出为文本的许多其他选项的最小版本。这是选项的完整版本示例

tell application "FineReader"
    set resultFile to export to txt directParamFile ¬
        from file fromFileFile ¬
        ocr languages enum ocrLanguagesEnumLanguageListType ¬
        saving type savingTypeSaveSettingsEnum ¬
        retain layout retainLayoutTxtLayout ¬
        keep page numbers headers and footers keepPageNumbersHeadersAndFootersBoolean ¬
        keep line breaks and hyphenation keepLineBreaksAndHyphenationBoolean ¬
        insert page break character as page separator insertPageBreakCharacterAsPageSeparatorBoolean ¬
        use blank lines useBlankLinesBoolean ¬
        encoding encodingEncodingEnum
end tell

我决定不使用 FineReader 小程序了。相反,我迁移到堆栈:tesseract + ImageMagick + gs。 如果有人感兴趣,我在下面附上我的解决方案。

Automator shell 脚本

export PATH=/usr/local/bin:$PATH

/usr/local/bin/convert -density 300 "$@" -depth 8 -strip -background white -alpha off image.tiff
/usr/local/bin/tesseract -l rus image.tiff ~/Desktop/OCR
rm image.tiff

还有 Automator workflow