PDF 文件通常由文本、图像、标题、注释和其他元素组成。由于这种格式保留了跨平台(桌面/移动等)的文档布局,因此它广泛用于通过互联网共享信息。但是,我们可能需要提取 PDF 文档的文本内容以进行进一步处理。因此,在本文中,我们将详细讨论如何使用 Java Cloud SDK 从 PDF 中提取文本。操作完成后,输出将以 TXT 格式保存。
PDF 到 TXT 转换 API
Aspose.PDF Cloud SDK for Java 是我们屡获殊荣的 REST API 解决方案,提供创建、编辑 PDF 并将其转换为 JPG、XPS、HTML、DOCX 和各种其他支持的格式 的功能。现在,为了在 Java 应用程序中实现 pdf 文本识别功能,请在 maven 构建类型项目的 pom.xml 中添加以下详细信息。
<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.11.0</version>
</dependency>
</dependencies>
安装 SDK 后,下一个重要步骤是在 Aspose Cloud 上创建一个免费帐户。因此,请使用新创建的帐户登录,并在 Cloud Dashboard 查找/创建客户端 ID 和客户端密码。后续部分需要这些详细信息。
PDF 到 Java 中的文本
请按照以下步骤使用 Java Cloud SDK 执行 PDF 到文本的转换。所以转换成功后,生成的TXT文件保存在云存储中。
- 首先,我们需要创建一个 PdfApi 对象,同时提供 ClientID 和 Client secret 作为参数
- 其次,使用 File 实例加载输入 PDF 文件
- 使用 uploadFile(…) 方法将输入的 PDF 上传到云存储
- 创建 Integer 变量,指定用于文本提取的 PDF 页码和 Double 实例,指示我们需要从中提取文本内容的页面矩形区域
- 最后调用 getPageText(…) 方法从输入的 PDF 中获取文本内容
try
{
// 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
String clientId = "bb959721-5780-4be6-be35-ff5c3a6aa4a2";
String clientSecret = "4d84d5f6584160cbd91dba1fe145db14";
// 创建 PdfApi 的实例
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// 输入 PDF 文档的名称
String inputFile = "marketing.pdf";
// 读取输入PDF文件的内容
File file = new File("//Users//"+inputFile);
// 上传PDF到云存储
pdfApi.uploadFile("input.pdf", file, null);
// 要转换的 PDF 的特定页面
int pageNumber =1;
// 左下角的 X 坐标
Double LLX = 0.0;
// Y - 左下角的坐标。
Double LLY = 0.0;
// X - 右上角的坐标。
Double URX = 800.0;
// Y - 右上角的坐标。
Double URY = 800.0;
// 调用 API 将 PDF 转换为文本
TextRectsResponse response = pdfApi.getPageText(inputFile, pageNumber, LLX, LLY, URX, URY, null, null, true, null, "default");
// 生成的 TXT 文件实例
FileWriter myWriter = new FileWriter("filename.txt");
// 现在遍历单个 Text Occurance 在控制台中获取打印结果
for(int counter=0; counter <=response.getTextOccurrences().getList().size()-1; counter++)
{
// 将文本内容写入TXT文件
myWriter.write(response.getTextOccurrences().getList().get(counter).getText());
}
// 关闭 TXT 处理程序
myWriter.close();
System.out.println("Text successfully extracted from PDF !");
}catch(Exception ex)
{
System.out.println(ex);
}
上例中使用的示例 PDF 文件可以从 marketing.pdf 和 extracted.txt 下载
使用 cURL 命令从 PDF 中提取文本
可以通过 cURL 命令轻松访问 REST API,因此在本节中,我们将探索如何使用 cURL 命令从 PDF 中提取文本内容的选项。因此,作为先决条件,我们首先需要在执行以下命令时生成 JWT 访问令牌(基于客户端凭据)。
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
获得 JWT 令牌后,我们需要执行以下命令来提取 PDF 文档中出现的所有文本。
curl -v -X GET "https://api.aspose.cloud/v3.0/pdf/input.pdf/text?splitRects=true&LLX=0&LLY=0&URX=800&URY=800" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
结论
本文详细介绍了如何使用 Java Cloud SDK 将 PDF 转换为 TXT。同时,我们还探索了使用 cURL 命令从 PDF 中提取文本的选项。因此,借助在多个 PDF 页面之间遍历的灵活性,我们可以控制从何处提取内容。我们强烈建议您浏览产品 文档,以进一步了解 Java Cloud API 提供的其他令人兴奋的功能。此外,由于我们所有的 Cloud SDK 都是在 MIT 许可下发布的,因此您可以考虑从 GitHub 下载完整的源代码并根据您的要求进行修改。如有任何问题,您可以考虑通过免费的 产品支持论坛 联系我们寻求快速解决方案。
相关文章
请访问以下链接以了解更多信息: