如何以编程方式确定PDF是否可搜索?

时间:2012-08-05 21:32:09

标签: python bash pdf pdftk

我的CSV包含带PDF的网址列表:

  • 其中一些PDF可供搜索。
  • 其中一些PDF文件无法搜索。

我想确定哪些PDF可以从我的PDF列表中搜索到。是否有捷径可寻?

1 个答案:

答案 0 :(得分:6)

在命令行上,我使用pdffonts来确定文件使用的字体。这运行得相当快......

示例1:包含文本的PDF

pdffonts bash-manpage.pdf 

  name                            type          encoding        emb sub uni object ID
  ------------------------------- ------------- --------------- --- --- --- ---------
  Times-Roman                     Type 1        Custom          no  no  no       8  0
  Times-Bold                      Type 1        Standard        no  no  no       9  0
  Helvetica                       Type 1        Custom          no  no  no      11  0
  Helvetica-Bold                  Type 1        Standard        no  no  no      30  0

示例2:仅包含图像的PDF

pdffonts scanned-book.pdf

  pdffonts handmade.pdf 
  name                            type           encoding       emb sub uni object ID
  ------------------------------- -------------- -------------- --- --- --- ---------

  1. 示例1显示了一个包含字体名称的表。这意味着要搜索 IS 文字。

  2. 示例2显示了一个空表。没有字体,没有要搜索的文本(除非你在文件上运行OCR首先嵌入任何找到的文本......但是你创建了一个不同的文件!),不要回头看看这些...

  3. 注意:要成功实际提取嵌入的文本,因此能够搜索它是一个完全不同的问题。在许多情况下,您会发现它非常困难 - 特别是如果您在字体'表格中看到CID Type字体类型与'自定义'编码。您可能首先要从PDF中搜索其他questions that were asked about text extraction的stackoverflow ...