• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

如何在Java中将PDF转换为文本

JAVA相关 开心洋葱 2185次浏览 0个评论

利用OCR技术,使用Java中的API将PDF转换为文本。

由于无法在PDF文档中进行复制,粘贴或编辑,因此手动将PDF转录为文本可能是一项令人沮丧的任务。对我们来说幸运的是,我们拥有光学字符识别(OCR)技术来帮助我们。我们在先前的文章中对此进行了一些讨论,但需要澄清的是,光学字符识别或光学字符读取器是将打字,手写或打印的文本的图像从电子或机械方式转换为机器编码的文本。

OCR作为打印纸数据记录的数据输入形式最流行,但是它也经常用于数字化打印文本,以便可以对其进行编辑,紧凑存储或在线显示。这项技术已经过改进和训练,可以识别模式,现在在AI的额外协助下,可以毫不费力地提供高度的准确性。

在下面的教程中,我们将提供有关如何使用OCR API扫描PDF文档并将其转换为文本的说明,这通常是一个漫长而费力的过程。该操作支持各种质量级别和多种语言,因此您可以对其进行自定义以满足项目的需求。

与往常一样,我们的第一步是通过添加对存储库的引用来安装Maven SDK:

 

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

接下来,我们将添加对依赖项的引用:

<dependencies>
<dependency>
    <groupId>com.github.Cloudmersive</groupId>
    <artifactId>Cloudmersive.APIClient.Java</artifactId>
    <version>v3.90</version>
</dependency>
</dependencies>

安装完成后,我们全部完成了将导入添加到控制器顶部并执行功能调用的步骤:

// Import classes:
2
//import com.cloudmersive.client.invoker.ApiClient;
3
//import com.cloudmersive.client.invoker.ApiException;
4
//import com.cloudmersive.client.invoker.Configuration;
5
//import com.cloudmersive.client.invoker.auth.*;
6
//import com.cloudmersive.client.PdfOcrApi;
7
8
ApiClient defaultClient = Configuration.getDefaultApiClient();
9
10
// Configure API key authorization: Apikey
11
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
12
Apikey.setApiKey("YOUR API KEY");
13
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
14
//Apikey.setApiKeyPrefix("Token");
15
16
PdfOcrApi apiInstance = new PdfOcrApi();
17
File imageFile = new File("/path/to/inputfile"); // File | PDF file to perform OCR on.
18
String recognitionMode = "recognitionMode_example"; // String | Optional; possible values are 'Basic' which provides basic recognition and is not resillient to page rotation, skew or low quality images uses 1-2 API calls per page; 'Normal' which provides highly fault tolerant OCR recognition uses 26-30 API calls per page; and 'Advanced' which provides the highest quality and most fault-tolerant recognition uses 28-30 API calls per page.  Default recognition mode is 'Basic'
19
String language = "language_example"; // String | Optional, language of the input document, default is English (ENG).  Possible values are ENG (English), ARA (Arabic), ZHO (Chinese - Simplified), ZHO-HANT (Chinese - Traditional), ASM (Assamese), AFR (Afrikaans), AMH (Amharic), AZE (Azerbaijani), AZE-CYRL (Azerbaijani - Cyrillic), BEL (Belarusian), BEN (Bengali), BOD (Tibetan), BOS (Bosnian), BUL (Bulgarian), CAT (Catalan; Valencian), CEB (Cebuano), CES (Czech), CHR (Cherokee), CYM (Welsh), DAN (Danish), DEU (German), DZO (Dzongkha), ELL (Greek), ENM (Archaic/Middle English), EPO (Esperanto), EST (Estonian), EUS (Basque), FAS (Persian), FIN (Finnish), FRA (French), FRK (Frankish), FRM (Middle-French), GLE (Irish), GLG (Galician), GRC (Ancient Greek), HAT (Hatian), HEB (Hebrew), HIN (Hindi), HRV (Croatian), HUN (Hungarian), IKU (Inuktitut), IND (Indonesian), ISL (Icelandic), ITA (Italian), ITA-OLD (Old - Italian), JAV (Javanese), JPN (Japanese), KAN (Kannada), KAT (Georgian), KAT-OLD (Old-Georgian), KAZ (Kazakh), KHM (Central Khmer), KIR (Kirghiz), KOR (Korean), KUR (Kurdish), LAO (Lao), LAT (Latin), LAV (Latvian), LIT (Lithuanian), MAL (Malayalam), MAR (Marathi), MKD (Macedonian), MLT (Maltese), MSA (Malay), MYA (Burmese), NEP (Nepali), NLD (Dutch), NOR (Norwegian), ORI (Oriya), PAN (Panjabi), POL (Polish), POR (Portuguese), PUS (Pushto), RON (Romanian), RUS (Russian), SAN (Sanskrit), SIN (Sinhala), SLK (Slovak), SLV (Slovenian), SPA (Spanish), SPA-OLD (Old Spanish), SQI (Albanian), SRP (Serbian), SRP-LAT (Latin Serbian), SWA (Swahili), SWE (Swedish), SYR (Syriac), TAM (Tamil), TEL (Telugu), TGK (Tajik), TGL (Tagalog), THA (Thai), TIR (Tigrinya), TUR (Turkish), UIG (Uighur), UKR (Ukrainian), URD (Urdu), UZB (Uzbek), UZB-CYR (Cyrillic Uzbek), VIE (Vietnamese), YID (Yiddish)
20
String preprocessing = "preprocessing_example"; // String | Optional, preprocessing mode, default is 'Auto'.  Possible values are None (no preprocessing of the image), and Auto (automatic image enhancement of the image before OCR is applied; this is recommended).
21
try {
22
    PdfToTextResponse result = apiInstance.pdfOcrPost(imageFile, recognitionMode, language, preprocessing);
23
    System.out.println(result);
24
} catch (ApiException e) {
25
    System.err.println("Exception when calling PdfOcrApi#pdfOcrPost");
26
    e.printStackTrace();
27
}

为了确保过程顺利进行,需要满足一些参数:

图像文件–用于执行OCR的PDF文件。
API密钥–您的个人API密钥;这可以通过在Cloudmersive网站上注册免费帐户来获得。
识别模式(可选)–提供了三种设置;默认值为基本。
基本:基本级别的识别,对页面旋转或低质量图像没有弹性;使用1-2个API调用。
正常:提供高度容错的识别;使用26-30个API调用
先进:提供最高质量和最容错的识别;使用28-30个API调用。
语言(可选)–输入文本的语言;默认值为ENG(英语)。
预处理(可选)–预处理模式有两个设置。默认为自动。
无:不对图像进行预处理。
自动:在应用OCR之前自动进行图像增强。
您的回复将立即得到发送,并将按页面列出文本结果。自1900年代初期以来,OCR取得了长足的进步,因此您的结果应该既简洁又准确。


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明如何在Java中将PDF转换为文本
喜欢 (0)

您必须 登录 才能发表评论!

加载中……