Извлечение текста или изображений из документов OneNote с помощью Java

Мы можем собирать и систематизировать заметки в виде текста, рисунков, вырезок с экрана и аудиокомментариев в документе OneNote. Иногда нам может понадобиться программно извлечь текст или изображения из документов OneNote в приложениях Java. Такое извлечение позволяет повторно использовать извлеченный текст или изображения по отдельности. В этой статье мы узнаем, как извлекать текст или изображения из документов OneNote с помощью Java.

В этой статье должны быть раскрыты следующие темы:

Java API для извлечения текста или изображений из OneNote

Для извлечения текста и изображений из документа OneNote мы будем использовать API Aspose.Note для Java. Он позволяет программно создавать, читать и преобразовывать документы OneNote без использования MS OneNote. Пожалуйста, либо скачайте JAR API, либо добавьте следующую конфигурацию pom.xml в приложение Java на основе Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-note</artifactId>
    <version>22.1</version>
    <classifier>jdk17</classifier>
</dependency>

Извлечь весь текст из документа OneNote с помощью Java

Мы можем легко извлечь весь текст из документа OneNote, выполнив следующие шаги:

  1. Во-первых, загрузите файл OneNote с помощью класса Document.
  2. После этого вызовите метод GetChildNodes с аргументом RichText.class для извлечения текста.
  3. Наконец, покажите извлеченный текст.

В следующем примере кода показано, как извлечь весь текст из файла OneNote с помощью Java.

// В этом примере кода показано, как извлечь весь текст из документа OneNode.
// Загрузите документ в Aspose.Note.
Document oneFile = new Document("D:\\Files\\Note\\Sample1.one");

// Получить текст
List<RichText> textNodes = (List<RichText>) oneFile.getChildNodes(RichText.class);

for (RichText richText : textNodes) {
  if(!richText.getText().isBlank())
    System.out.println(richText.getText().toString());
}
Извлечь весь текст из документа OneNote с помощью Java

Извлечь весь текст из документа OneNote с помощью Java

Получить текст с определенных страниц документа OneNote в Java

Мы можем извлечь текст с определенных страниц документа OneNote, выполнив следующие действия:

  1. Во-первых, загрузите файл OneNote с помощью класса Document.
  2. Затем вызовите метод GetChildNodes с Page.class в качестве аргумента для извлечения страниц.
  3. Затем получить конкретную страницу по ее индексу из списка страниц.
  4. После этого получите список текстовых элементов для страницы с помощью метода GetChildNodes с RichText.class в качестве аргумента.
  5. Наконец, покажите извлеченный текст.

В следующем примере кода показано, как извлечь текст из определенной страницы файла OneNote с помощью Java.

// В этом примере кода показано, как извлечь текст с определенной страницы документа OneNode.
// Загрузите документ в Aspose.Note
Document doc = new Document("D:\\Files\\Note\\Sample1.one");

// Получить список узлов страницы
List<Page> pages = doc.getChildNodes(Page.class);

// Получить страницу по индексу
Page page = pages.get(0);

// Получить текст страницы
List<RichText> textNodes = (List<RichText>) page.getChildNodes(RichText.class);

// Показать текст
for (RichText richText : textNodes) {
  if(!richText.getText().isBlank())
    System.out.println(richText.getText().toString());
}
Extract Text from a Specific Page of OneNote Document in Java

Extract Text from a Specific Page of OneNote Document in Java

Мы можем перебирать все страницы одну за другой и извлекать текст для каждой страницы, как показано в примере кода, приведенном ниже:

// В этом примере кода показано, как извлечь текст со страниц документа OneNode.
// Загрузите документ в Aspose.Note.
Document doc = new Document("D:\\Files\\Note\\Sample1.one");

// Получить список узлов страницы
List<Page> pages = doc.getChildNodes(Page.class);

for (Page p : pages) {
  System.out.println("---- Page Started Here ----");

  List<RichText> textNodes = (List<RichText>) p.getChildNodes(RichText.class);

  for (RichText richText : textNodes) {
    if(!richText.getText().isBlank())
      System.out.println(richText.getText().toString());
  }

  System.out.println("---- Page Ended Here ----");
  System.out.println();
}
Получить текст с определенных страниц документа OneNote в Java

Получить текст со всех страниц одну за другой в Java

Извлечение изображений из документа OneNote с помощью Java

Мы также можем извлечь изображения из документа OneNote, выполнив следующие действия:

  1. Во-первых, загрузите файл OneNote с помощью класса Document.
  2. После этого получите список изображений с помощью метода GetChildNodes с Image.class в качестве аргумента.
  3. Наконец, покажите свойства изображения и сохраните его на локальный диск.

В следующем примере кода показано, как извлечь изображения из файла OneNote с помощью Java.

// В этом примере кода показано, как извлекать изображения из документа OneNode.
// Загрузите документ в Aspose.Note
Document doc = new Document("D:\\Files\\Note\\Sample1.one");

// Получить все изображения
List<Image> list = doc.getChildNodes(Image.class);
System.out.printf("Total Images: %s\n\n", list.size());

// Пройтись по списку
for (int i = 0; i < list.size(); i++) {
  Image image = list.get(i);

  // Показать свойства изображения
  System.out.println("Width: " + image.getWidth());
  System.out.println("Height: " + image.getHeight());
  System.out.println("OriginalWidth: " + image.getOriginalWidth());
  System.out.println("OriginalHeight: " + image.getOriginalHeight());
  System.out.println("FileName: " + image.getFileName());
  System.out.println("LastModifiedTime: " + image.getLastModifiedTime());

  String outputFile = "ExtractImages_out" + i + "_" + image.getFileName();

  // Сохранить изображение
  byte[] buffer = image.getBytes();
  Files.write(Paths.get("D:\\Files\\Note\\Images\\" + outputFile), buffer);
  System.out.printf("File saved: %s\n", outputFile);
}
Извлечение изображений из документа OneNote с помощью Java

Извлечение изображений из документа OneNote с помощью Java

Получить бесплатную лицензию

Вы можете получить бесплатную временную лицензию, чтобы попробовать библиотеку без ограничений пробной версии.

Вывод

В этой статье мы узнали, как извлечь текст из всего документа OneNote или из определенной страницы документа. Мы также видели, как программно извлекать изображения из документов OneNote. Кроме того, вы можете узнать больше об Aspose.Note for Java API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также