扫描 PDF 以便搜索

图像是数据共享不可或缺的组成部分之一,一些应用程序直接以 PDF 格式呈现源内容。但是,当我们必须在文档中搜索某些内容时,这种便利会增加成本。在这种情况下,必须手动浏览整个文档才能找到相关信息。因此,建议的方法始终是生成可搜索且易于管理的文件。但是,如果您收到了 PDF 文件,而您无法控制源文档的格式,那么对于数据存档和索引,我们需要将此类文档转换为可搜索的格式。在本文中,我们将讨论有关如何执行在线 PDF OCR 以及如何将扫描/图像 PDF 文件转换为可搜索/文本 PDF 文档的详细信息。

PDF处理API

Aspose.PDF Cloud 是我们屡获殊荣的基于 REST 架构的 PDF 创建和操作 API。使用相同的 API,您可以执行各种操作,例如 将 EPUB 转换为 PDF将 HTML 转换为 PDF将 XPS 转换为 PDF将 DOC 和 Doc X 转换为 PDF将 XPS 转换为 PDF、在新的或现有的 PDF 文件中插入图像等。所有这些操作都在云中执行,因此可以从任何平台访问 API。

使用 cURL 命令进行 PDF OCR

cURL 命令是通过命令行终端访问 Aspose.PDF Cloud 的简单方法。但在访问 API 之前,您需要先访问 Aspose.Cloud 仪表板,如果您有 GitHub 或 Google 帐户,只需注册即可。否则,单击 创建新帐户 按钮并提供所需信息。现在使用凭据登录仪表板,从仪表板展开应用程序部分,向下滚动到客户端凭据部分以查看客户端 ID 和客户端密钥详细信息。

现在下一步是生成 JSON Web Token (JWT),以便可以通过命令提示符访问 API。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4&client_secret=d87269aade6a46cdc295b711e26809af" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

一旦我们有了 JWT 令牌,请在命令行终端中执行以下 cURL 命令。

curl -X PUT "https://api.aspose.cloud/v3.0/pdf/ocrscan.pdf/ocr?lang=eng" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

使用 Java 将扫描的 PDF 转换为可搜索的版本

为了方便我们的 Java 程序员,我们创建了一个 Aspose.PDF Cloud 包装器,以便可以在 Java 代码中轻松访问 Cloud API 的所有功能。同样,为了对扫描的 PDF 执行 OCR 操作,我们需要使用 Aspose.PDF Cloud SDK for Java

因此,第一步是在系统上安装 SKD。Cloud SDK 可通过 MavenGitHub 下载。现在,在您的 pom.xml 文件中添加以下详细信息,以便在您的 Maven 构建项目中下载并使用 Aspose.Pdf.jar。

<repositories>
 <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>
<dependencies>
 <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-pdf-cloud</artifactId>
        <version>21.1.0</version>
        <scope>compile</scope>
    </dependency>
 </dependencies>

欲了解更多信息,请访问如何安装 Aspose.Cloud SDKs

以下步骤定义了对图像 PDF 文件进行 COR 操作的过程。

  • 第一步是创建一个 PdfApi 对象,同时传递 ClientID 和客户端机密详细信息(可在 Aspose.Cloud 仪表板 上找到)。
  • 创建一个文件实例并将图像文件的位置作为参数传递。
  • 调用 uploadFile(…) 方法并将 PDF 文档和 File 实例作为参数传递。
  • 下一步是创建一个字符串实例并将其值设置为源文件包含的语言代码,即“rus,eng”。
  • 最后,调用 PdfApi 的 putSearchableDocument(…) 方法并传递输入的 PDF 文件名和语言代码作为参数。

OCR 引擎的语言。支持的值:eng、ara、bel、ben、bul、ces、dan、deu、ell、fin、fra、heb、hin、ind、isl、ita、jpn、kor、nld、nor、pol、por、ron、rus、spa、swe、tha、tur、ukr、vie、chisim、chitra 或它们的组合,例如 eng、rus。

// 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
String clientId = "a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4";
String clientSecret = "d87269aade6a46cdc295b711e26809af";
				
// createPdfApi 实例
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// 输入PDF文档
String name = "ocrscan.pdf";	        
			    
// 从本地系统加载文件
File file = new File("/Users/nayyershahbaz/Downloads/" + name);
// 将文件上传至云存储
FilesUploadResult uploadResponse = pdfApi.uploadFile(name, file, null);
				
// 图像文件中使用的语言
String lang = "rus,eng";
				
//  对图像 PDF 文档执行 OCR
AsposeResponse response = pdfApi.putSearchableDocument(name, null, null, lang);
assertEquals(200, (int)response.getCode());
OCR结果预览

图 1:- OCR 输出预览。

上述示例中使用的示例 PDF 文件可以从以下链接下载:

结论

在本文中,我们了解了如何执行在线 PDF OCR 操作并将扫描的 PDF 文档转换为可搜索的 PDF 文档的一些简单步骤。除了 OCR 操作之外,SDK 功能非常强大,可以执行各种其他操作。有关更多详细信息,请访问 Aspose.PDF Cloud 功能