pdf-tools 提取图片标注

接着 @fuxialexander 的帖子:

虽然作为pdf阅读器,pdf-tools使用起来各种不便,但是它最强大的地方在于它位于 emacs 生态中,所以赋予它无限的可能性。

我现在最想要的功能是标注并提取图片。提取高亮已经已经可以办到了,参考这里。我现在用 org-download 截图来记录图片到笔记中,但是这样做的缺点是无法记录图片的来源位置。如果能够像提取高亮一样提取图片及位置就太爽了,但是问题是 pdf-tools 的 server 是 C 写的,这个已经超出我的能力范围了。所以想请问各位大佬,这样的功能实现起来难吗?

我想到一个主意,就是高亮图标题,图标题上一般都有编号。这样提取高亮文字后如果识别是图标题的话,就插入对应编号的图片。

图片可以事先通过 bash 命令提取:

pdfimages -all yourdoc.pdf ./fig

这样会在当前文件夹内生成

fig-000.jpg
fig-001.jpg
fig-002.jpg
...

等图片文件。

这样如果提取的图标题是

Fig 1. Blah Blah Blah

那么可以用 elisp 代码判断是图标题,进而插入对应的图片 fig-000.jpg

待解决的问题,

  1. 有些段落开头就是图编号(比如 Fig 1 shows,如果这类文字被高亮,则可能会和图标题混淆,导致在不该插入图片的地方插入图片。
  2. 这个方法对于期刊论文一般没有问题,如果是学位论文,图标题一般带有章节编号,比如 Fig 2.1,而提取的图片仍然按照顺序编号,这样就没法根据图标题中的编号找到对应的图片了。这个应该怎么解决呢?
  3. 有些 PDF 中可能会带有一些和正文无关的图片,比如 logo 什么的。用 pdfimages 命令会把这些多余的图片也提取出来,并导致序号不完全和图标题对照。因此对生成的图片文件还需要检查一下顺序是否正确,这个过程是无法自动的
  4. pdfimages 命令只能提取 raster 图形,不能提取矢量图。