由于在 PDF 上执行简单的编辑任务相对困难,因此通常使用第三方 PDF 编辑器(或高级 Adob​​e 工具)来获得所需的结果。这些解决方案虽然在逐个文件的基础上有效,但对于实现大规模的结果并不是很好,但是——它们仍然需要通过界面进行手动导航,这会占用大多数人不必浪费在高效率上的时间。体积转换任务。

要大规模编辑和处理 PDF,第三方 API 服务是最有效的解决方案。这是因为 PDF 编辑 API 可以与压缩的 PDF 文件进行通信,而无需打开它;他们可以进行有意义的编辑(例如旋转页面、删除评论等),并且在另一方面,他们可以提取目标内容而不会对原始文​​档产生任何影响。

示范

在本文的演示部分,我将向您介绍两个简单易用的 API 解决方案,它们旨在从常规 PDF 文档中提取纯文本,而无需打开或对原始文件进行任何更改。这些 API 解决方案包括:

  1. 将 PDF 转换为文本 (TXT)
  2. 按页将 PDF 转换为文本 (TXT)

上面列出的第一个解决方案将简单地从 PDF 文档中删除纯文本,而不执行任何其他操作(默认情况下);API 响应将包含一个带有提取文本正文的“TextResult”字符串。下面,我提供了一个响应模型以供参考:

JSON
{"Successful": true,"TextResult": "string"
}

顾名思义,第二种解决方案将删除文本,同时在结果中包含每个文本部分来自的页码。此解决方案增加了对转换的更高级别的控制,确保可以按照与原始 PDF 文档大致相同的顺序与结果信息进行交互,并且在我们以 TXT 格式存储转换后的信息时更容易对其进行分类。以下模型显示了此响应的格式:

JSON
{"Successful": true,"Pages": [{"PageNumber": 0,"PageText": "string"}]
}

这两种解决方案还提供了一个可选的“textFormattingMode”参数,可以配置该参数以指定在进行转换时应如何处理空白。使用此功能时,可能的值为“preserveWhitespace”,它将保留文档中的空白并保留其与文本的相对位置,以及“minimizeWhitespace”,在大多数情况下不会在文档中插入更多空格。默认设置是“preserveWhitespace”。

下面,我将向您介绍如何使用 Java 中的可立即运行、互补的代码示例来利用这两种 API。请注意,要免费使用任一 API,您只需在www.cloudmersive.com上注册一个免费帐户即可获得安全的 API 密钥(此帐户每月最多可产生 800 次 API 调用)。

在调用任一 API 之前,我们将从安装 SDK 开始作为我们的第一步。我们可以通过首先在 pom.xml 中添加对存储库的引用来使用 Maven 执行此操作:

XML
<repositories><repository><id>jitpack.io</id><url>https://jitpack.io</url></repository>
</repositories>

然后添加对 pom.xml 依赖项的引用:

XML
<dependencies>
<dependency><groupId>com.github.Cloudmersive</groupId><artifactId>Cloudmersive.APIClient.Java</artifactId><version>v4.25</version>
</dependency>
</dependencies>

我们也可以通过将 Gradle 添加到存储库末尾的根 build.gradle 中来执行此操作:

时髦的
allprojects {repositories {...maven { url 'https://jitpack.io' }}
}

然后在 build.gradle 中添加依赖:

时髦的
dependencies {implementation 'com.github.Cloudmersive:Cloudmersive.APIClient.Java:v4.25'
}

现在我们可以构建我们的 API 调用,从通用 PDF 到 TXT 转换 API 开始。在下面的代码片段中,在文档指示的位置(就在导入下方)包含您的 API 密钥,然后在下面的 inputFile 参数中包含您的文件路径:

爪哇
// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.ConvertDocumentApi;ApiClient defaultClient = Configuration.getDefaultApiClient();// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");ConvertDocumentApi apiInstance = new ConvertDocumentApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
String textFormattingMode = "textFormattingMode_example"; // String | Optional; specify how whitespace should be handled when converting PDF to text.  Possible values are 'preserveWhitespace' which will attempt to preserve whitespace in the document and relative positioning of text within the document, and 'minimizeWhitespace' which will not insert additional spaces into the document in most cases.  Default is 'preserveWhitespace'.
try {TextConversionResult result = apiInstance.convertDocumentPdfToTxt(inputFile, textFormattingMode);System.out.println(result);
} catch (ApiException e) {System.err.println("Exception when calling ConvertDocumentApi#convertDocumentPdfToTxt");e.printStackTrace();
}

对于按页将 PDF 转换为文本的解决方案,请改用以下代码段。这将以与第一个相同的方式捕获您的 API 密钥和文件输入参数:

爪哇
// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.EditPdfApi;ApiClient defaultClient = Configuration.getDefaultApiClient();// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");EditPdfApi apiInstance = new EditPdfApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
String textFormattingMode = "textFormattingMode_example"; // String | Optional; specify how whitespace should be handled when converting the document to text.  Possible values are 'preserveWhitespace' which will attempt to preserve whitespace in the document and relative positioning of text within the document, and 'minimizeWhitespace' which will not insert additional spaces into the document in most cases.  Default is 'preserveWhitespace'.
try {PdfTextByPageResult result = apiInstance.editPdfGetPdfTextByPages(inputFile, textFormattingMode);System.out.println(result);
} catch (ApiException e) {System.err.println("Exception when calling EditPdfApi#editPdfGetPdfTextByPages");e.printStackTrace();
}

请记住,默认的 textFormattingMode 设置将在输出中保留输入 PDF 中的空白。如果您想避免这种情况,请确保将示例代码更改为“minimizeWhitespace”。有了这个解决方案,您将能够轻松地将文本从 PDF 文档重定向到各种不同的目的地,而无需打开相关文档。

如何使用 Java 将 PDF 转换为文本 (TXT)相关推荐

  1. 示例演示!使用Aspose在Java中将PDF转换为SVG格式

    PDF多年来一直统治着数字文档格式的世界,用于文档的打印,共享,交换和存档.但是,PDF在某些情况下可能不适合,例如在Web页上显示它,因为它需要浏览器支持或其他插件.在这种情况下,SVG可以替代.由 ...

  2. 【编程实践】在 Java 中将 PDF 转换为 PowerPoint 演示文稿 / Convert PDF to PowerPoint Presentation in Java

    在 Java 中将 PDF 转换为 PowerPoint 演示文稿 / Convert PDF to PowerPoint Presentation in Java When working with ...

  3. java提取PDF文件文本

    java 读取 PDF 文件内容 在我们平时的日常生活中通常会遇到需要将PDF 报告转换为word文档操作的需求,通过pdfbox插件 读取PDF 文件中的文本内容 代码如下: package com ...

  4. pdfminer转换PDF为html,【记录】尝试使用pyPdf将不可复制的PDF转换为文本或HTML

    [背景] 折腾: 期间,去试试使用pyPdf去把一个不可复制的PDF文件,转换为文本或HTML. [折腾过程] 1.参考: 去找到: 并下载: 2.但是安装时找不到Python: 看来是: 我此处安装 ...

  5. 如何在 Java 中将 PDF 转换为图像

    将 PDF 转换为图像是开发人员的常见需求.在Free Spire.PDF的帮助下,我们可以轻松地将任何大小和版本的 PDF 文件转换为 Java 应用程序中的高质量图像.在本文中,我将介绍将 PDF ...

  6. linux java pdf2swf_linux PDF转换为SWF

    由于工程需要把用户上传的PDF转换为SWF,服务器要求也是linux,所以就想到 swftools,官方网站:http://www.swftools.org/可以把很多文件转换为swf,他默认只支持 ...

  7. Adobe Acrobat Pro将不清晰的pdf转换为文本清晰的pdf

    在查阅文献的时候,经常会需要阅读一些年代久远的经典论文,这些论文往往为扫描版,不够清晰也无法复制,可以用acrobat进行文本的识别并转换为清晰.可复制的内容. 用adobe acrobat打开一篇不 ...

  8. python pdf模块_用于将PDF转换为文本的Python模块

    编辑(再次): PDFMiner已在版本中再次更新.20100213 您可以使用以下内容检查已安装的版本:>>> import pdfminer>>> pdfmin ...

  9. Java工程师福利!1分钟学会使用Aspose.PDF将PDF转换为PowerPoint PPT / PPTX

    由于PDF具有受支持的功能以及所有平台的稳定性和一致性,PDF已成为使用最广泛的文档格式之一.在各种情况下,会选择以PDF格式保存或共享文档.但是,在某些情况下,可能需要将PDF的内容导出到Power ...

最新文章

  1. 联想输入快捷键_UG软件F8快捷键和笔记本电脑F8快捷键冲突的解决方法
  2. Fedora下如何删除以前的老内核
  3. ubuntu 循环登录问题,
  4. 机器人学一些概念2——四元数,D-H 参数
  5. 定制安装centos6.4系统 上汽集团线上环境
  6. 考英语四级误用六级题 千余考生困教室4个小时
  7. arduino uno电压_Arduino UNO中文数据手册
  8. 把lighttpd配置为系统服务
  9. 深入浅出MFC笔记(5)
  10. 微信扫码/链接下载APK包, 自定义引导页,引导在外部浏览器打开
  11. 【odoo15】添加Chatter到表单视图,创建[发送消息][记录备注][安排活动]
  12. html5 webgl stl,新闻|Babylon.js|Babylon.js教程|Babylon.js开发|Babylon.js制作|webgl|three.js|html53D可视化开发...
  13. 2010年西北工业大学机试第二题
  14. 升级到Android12后Termux不能访问Android/data目录该怎么办
  15. 薅资本主义羊毛,用Google免费GPU
  16. 2021-10-21 填空题
  17. N4 新标日初级下 问法总结和课后练习题12答案
  18. 【Nav2中文网】八、调整指南
  19. 周志华老师报告Boasting 25years
  20. MySQL循环语句实战

热门文章

  1. 线程1(Thread)
  2. 微信小程序 宠物社区源码
  3. vue3+ts+setup语法糖
  4. 华为强推996工作制,程序员们的变态加班何时休?
  5. 编译 ORB-SLAM2/3的ROS工程造成(You should double-check your ROS_PACKAGE_PATH...)
  6. IBM微码刷新(二)在服务器上使用BoMC介质刷新微码-cuixf@DC
  7. 本机无法 正常连接到桌面端Ubuntu虚拟机
  8. 教你用 Python 修改微信(支付宝)运动步数,轻松升到 TOP1
  9. 个推技术 | 厂商和App必看!统一推送UPS最全解读和快速接入指南
  10. 消防应急疏散指示系统在某居民社区综合体项目的应用