如何从扫描页面的 PDF 中制作可搜索的 PDF? [关闭]

Posted

技术标签:

【中文标题】如何从扫描页面的 PDF 中制作可搜索的 PDF? [关闭]【英文标题】:How can I make a searchable PDF from an PDF of scanned pages? [closed] 【发布时间】:2015-11-26 14:27:00 【问题描述】:

如何为我的 Java 应用程序使用 tesseract 从扫描页面的 PDF 中制作可搜索的 PDF?

【问题讨论】:

可搜索到底是什么意思 我最近从事过类似的项目,所以也许可以提供帮助 可搜索的 pdf 意味着您可以从 PDF 中选择文本,通常当您的 PDF 包含扫描页面时不会发生这种情况。 那么您是否将扫描文件作为图像获取? 这是***,我们不会为你写代码。展示您所做的事情并告诉我们您遇到了哪些问题。 【参考方案1】:
    String image2Text(String imagePath)
  
  dataPath= Environment.getExternalStorageDirectory().toString() + "/android/data/" + appContext.getPackageName() +  "/"; 
    File tessdata = new File(dataPath); 
   if (!tessdata.exists() || !tessdata.isDirectory())
   
       throw new IllegalArgumentException("Data path must contain subfolder tessdata!");   
 
     Bitmap image= BitmapFactory.decodeFile(imagePath);
  TessBaseAPI baseApi = new TessBaseAPI();
  baseApi.init(dataPath, "eng"); 

baseApi.setImage(image);
      String recognizedText = baseApi.getUTF8Text();
      baseApi.end();


      return recognizedText;
  

【讨论】:

在将文本转换为 pdf 文件并使用 tesseract 后,您可以允许编辑。问题是当你从图像制作 pdf 时 pdf 被存储为图像而不是文本,因此你无法编辑 你的程序在这里返回文本。它不会将 PDF 转换为可搜索的 PDF。 PDF 和可搜索 PDF 之间的区别 常规 PDF 文件和可搜索 PDF 文件之间有一个关键区别。通常,当您扫描文档并将其另存为 PDF 时,文本仍然无法访问。您可以查看它,但不能复制、编辑它或将其保存在文本文件中,因为这些字符与图像的其余部分无法区分。可搜索的 PDF 允许您将 PDF 中的文本复制并粘贴到任何其他文档中以便于编辑。 这就是将 pdf 从文本而不是图像转换的想法 在这里阅读如何做到这一点***.com/questions/26925856/… 我想要一个 java 代码来做这样的事情tobias-elze.de/pdfsandwich【参考方案2】:

可以使用 Gnostice XtremeDocumentStudio(用于 Java)。 http://www.gnostice.com/nl_article.asp?id=289&t=How_to_convert_scanned_images_to_searchable_PDF_using_OCR_in_Java

DocumentConverter dc = new DocumentConverter();
DigitizerSettings ds = dc.getPreferences().getDigitizerSettings();
ds.setDigitizationMode(DigitizationMode.ALL_IMAGES);
ds.setRecognizeElementTypes(RecognizeElementTypes.TEXT);

try 
  dc.convertToFile(
    "H:\\Screenshot-2.png", 
    "e:\\converted_image.pdf");
 catch (FormatNotSupportedException e) 
  e.printStackTrace();
 catch (ConverterException e) 
  e.printStackTrace();
 catch (XDocException e) 
  e.printStackTrace();

免责声明:我在 Gnostice 工作。

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。 已添加代码 sn-p。

以上是关于如何从扫描页面的 PDF 中制作可搜索的 PDF? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何制作3层的PDF电子书

如何用PDF制作电子书

如何使用图像的 tesseract 输出从另一个图像创建可搜索的 pdf

如何知道 PDF 是不是仅包含图像或已被 OCR 扫描以进行搜索?

将扫描的 pdf 文件转换为可文本搜索的 pdf 文件

怎么知道PDF是扫描版