运行 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
尝试制作使用 "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