Файл PDF обычно состоит из текста, изображения, заголовка, аннотаций и других элементов. И поскольку этот формат сохраняет макет документа на разных платформах (настольных/мобильных и т. д.), он широко используется для обмена информацией через Интернет. Однако у нас может возникнуть потребность извлечь текстовое содержимое документа PDF для дальнейшей обработки. Итак, в этой статье мы подробно обсудим, как извлечь текст из PDF с помощью Java Cloud SDK. После завершения операции выходные данные сохраняются в формате TXT.
API преобразования PDF в TXT
Aspose.PDF Cloud SDK для Java — это наше отмеченное наградами решение REST API, предлагающее возможности для создания, редактирования и преобразования PDF в JPG, XPS, HTML, DOCX и множество других поддерживаемых форматов. Теперь, чтобы реализовать возможности распознавания текста PDF в приложении Java, добавьте следующие детали в pom.xml проекта типа сборки maven.
<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. Эти детали потребуются в последующих разделах.
PDF в текст на Java
Следуйте приведенным ниже инструкциям, чтобы выполнить преобразование PDF в текст с помощью Java Cloud SDK. Таким образом, после успешного преобразования полученный файл TXT сохраняется в облачном хранилище.
- Сначала нам нужно создать объект PdfApi, указав ClientID и Client secret в качестве аргументов.
- Во-вторых, загрузите входной файл PDF, используя экземпляр файла.
- Загрузите исходный PDF-файл в облачное хранилище, используя метод uploadFile(…)
- Создайте переменную Integer, указывающую номер страницы PDF для извлечения текста, и экземпляры Double, указывающие прямоугольную область страницы, из которой нам нужно извлечь текстовое содержимое.
- Наконец, вызовите метод getPageText(…) для извлечения текстового содержимого из входного PDF-файла.
try
{
// Получите ClientID и ClientSecret с https://dashboard.aspose.cloud/
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");
// Теперь пройдитесь по отдельным вхождениям текста, чтобы получить результат печати в консоли.
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.
Извлечение текста из PDF с помощью команд cURL
К REST API можно легко получить доступ с помощью команд cURL, поэтому в этом разделе мы собираемся изучить вариант того, как мы можем извлечь текстовое содержимое из PDF с помощью команд cURL. Поэтому в качестве предварительного условия нам сначала нужно сгенерировать токен доступа 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>"
Заключение
В этой статье подробно объясняется, как преобразовать PDF в TXT с помощью Java Cloud SDK. В то же время мы также изучили варианты извлечения текста из PDF с помощью команд cURL. Таким образом, благодаря гибкости перехода между несколькими страницами PDF мы получаем контроль над тем, откуда извлекать содержимое. Мы настоятельно рекомендуем вам изучить продукт Документация, чтобы узнать больше о других интересных функциях, предлагаемых Java Cloud API. Кроме того, поскольку все наши Cloud SDK публикуются под лицензией MIT, вы можете загрузить полный исходный код с GitHub и изменить его в соответствии со своими требованиями. В случае возникновения каких-либо проблем вы можете обратиться к нам для быстрого решения через бесплатный форум поддержки продукта.
Статьи по Теме
Пожалуйста, перейдите по следующим ссылкам, чтобы узнать больше о: