我可以在打开 pdf 的情况下打开 macOS 预览应用并自动搜索字符串吗

我可以在打开 pdf 的情况下打开 macOS 预览应用并自动搜索字符串吗

我想通过命令行使用 pdf 打开预览应用程序并让它搜索术语并紧密显示找到的术语。

我想到这样的事情:

open xyz.pdf --args -f term

但这当然是行不通的。

有没有办法做到这一点?

谢谢

答案1

预览应用程序不支持这种命令行。您可以使用自动程序应用程序来完成此任务。

要在终端中搜索 PDF 中的文本,您可以使用 grep -a search_term xyz.pdf

编辑1:

这是我用来搜索短语“核心”的自动化工作流程的图像。

Automator PDF 搜索工作流程

  1. 打开自动化程序,创建“新文档”并选择“应用程序”。
  2. 搜索操作(左上角)“询问 Finder 项目”和“打开 Finder 项目”
  3. 将操作拖到右侧的工作流中,然后选择“Preview.app”作为“打开 Finder 项目”操作
  4. 记录自己搜索预览以查找您想要的短语。
  5. 停止录音。
  6. 清理您的记录会话“看我做”事件,因为它捕获了您切换窗口以及可能的点击。
  7. 保存并单击运行。

您可以从 CLI 运行自动程序应用程序,但在应用程序启动后您仍必须选择您的文件。

注意:您可以通过调整“Watch Me Do”中的播放速度设置来加快播放速度。

答案2

使用命令行搜索 pdf 的一种方法是先将 pdf 的内容转换为文本。

自制包管理器包含以下包,可以帮助您快速有效地完成此任务,而无需大量脆弱的 GUI 自动化:

  1. pdfsandwich:将文档转换为可处理的 PDF 文本。如果您的 PDF 是文本图像,请使用此功能。例如扫描文档
  2. pdf转文本:从 PDF 文件中提取文档的文本部分。然后您可以grep输出

安装这些后,请在示例 pdf 上尝试它们:

pdfsandwich example.pdf output.pdf
pdftotext output.pdf - | grep *keyword*

这将转换 PDF,然后您可以通过管道传输文档中找到的所有文本grep实用程序。grep 实用程序非常强大,它允许您执行比搜索简单字符串更多操作(要了解更多信息,请尝试:)man grep

相关内容