我想通过命令行使用 pdf 打开预览应用程序并让它搜索术语并紧密显示找到的术语。
我想到这样的事情:
open xyz.pdf --args -f term
但这当然是行不通的。
有没有办法做到这一点?
谢谢
答案1
预览应用程序不支持这种命令行。您可以使用自动程序应用程序来完成此任务。
要在终端中搜索 PDF 中的文本,您可以使用
grep -a search_term xyz.pdf
编辑1:
这是我用来搜索短语“核心”的自动化工作流程的图像。
- 打开自动化程序,创建“新文档”并选择“应用程序”。
- 搜索操作(左上角)“询问 Finder 项目”和“打开 Finder 项目”
- 将操作拖到右侧的工作流中,然后选择“Preview.app”作为“打开 Finder 项目”操作
- 记录自己搜索预览以查找您想要的短语。
- 停止录音。
- 清理您的记录会话“看我做”事件,因为它捕获了您切换窗口以及可能的点击。
- 保存并单击运行。
您可以从 CLI 运行自动程序应用程序,但在应用程序启动后您仍必须选择您的文件。
注意:您可以通过调整“Watch Me Do”中的播放速度设置来加快播放速度。
答案2
使用命令行搜索 pdf 的一种方法是先将 pdf 的内容转换为文本。
这自制包管理器包含以下包,可以帮助您快速有效地完成此任务,而无需大量脆弱的 GUI 自动化:
- pdfsandwich:将文档转换为可处理的 PDF 文本。如果您的 PDF 是文本图像,请使用此功能。例如扫描文档
- pdf转文本:从 PDF 文件中提取文档的文本部分。然后您可以grep输出
安装这些后,请在示例 pdf 上尝试它们:
pdfsandwich example.pdf output.pdf
pdftotext output.pdf - | grep *keyword*
这将转换 PDF,然后您可以通过管道传输文档中找到的所有文本grep实用程序。grep 实用程序非常强大,它允许您执行比搜索简单字符串更多操作(要了解更多信息,请尝试:)man grep
。