PDF 到 TXT 转换器

如何使用 Java 将 PDF 转换为 TXT

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>http://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 转换为 TXT

Image1:- PDF 到 TXT 转换预览

上例中使用的示例 PDF 文件可以从 marketing.pdfextracted.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 下载完整的源代码并根据您的要求进行修改。如有任何问题,您可以考虑通过免费的 产品支持论坛 联系我们寻求快速解决方案。

相关文章

请访问以下链接以了解更多信息: