Ми можемо збирати й упорядковувати нотатки у вигляді тексту, малюнків, вирізок екрана та аудіокоментарів у документі OneNote. Час від часу нам може знадобитися видобувати текст або зображення з документів OneNote програмним шляхом у програмах Java. Таке вилучення дозволяє нам повторно використовувати витягнутий текст або зображення окремо. У цій статті ми дізнаємося, як видобувати текст або зображення з документів OneNote за допомогою Java.
У цій статті будуть розглянуті такі теми:
- Java API для вилучення тексту або зображень із OneNote
- Видобудьте весь текст із OneNote за допомогою Java
- Отримайте текст із певних сторінок OneNote у Java
- Видобудьте зображення з OneNote за допомогою Java
Java API для вилучення тексту або зображень із OneNote
Для отримання тексту та зображень із документа OneNote ми будемо використовувати API Aspose.Note for 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, виконавши наведені нижче дії.
- По-перше, завантажте файл OneNote за допомогою класу Document.
- Після цього викличте метод GetChildNodes із RichText.class як аргументом, щоб отримати текст.
- Нарешті, покажіть витягнутий текст.
У наведеному нижче прикладі коду показано, як витягти весь текст із файлу 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, виконавши наведені нижче дії.
- По-перше, завантажте файл OneNote за допомогою класу Document.
- Далі викличте метод GetChildNodes із Page.class як аргументом, щоб видобути сторінки.
- Потім отримайте певну сторінку за її індексом зі списку сторінок.
- Після цього отримайте список текстових елементів для сторінки за допомогою методу GetChildNodes з RichText.class як аргумент.
- Нарешті, покажіть витягнутий текст.
У наведеному нижче прикладі коду показано, як витягти текст із певної сторінки файлу 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());
}
Ми можемо перебирати всі сторінки одну за одною та витягувати текст для кожної сторінки, як показано у прикладі коду, наведеному нижче:
// Цей приклад коду демонструє, як видобувати текст зі сторінок документа 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
Ми також можемо отримати зображення з документа OneNote, виконавши наведені нижче дії.
- По-перше, завантажте файл OneNote за допомогою класу Document.
- Після цього отримайте список зображень за допомогою методу GetChildNodes з Image.class як аргумент.
- Нарешті, покажіть властивості зображення та збережіть його на локальному диску.
У наведеному нижче прикладі коду показано, як видобувати зображення з файлу 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 або з певної сторінки документа. Ми також бачили, як програмно витягувати зображення з документів OneNote. Крім того, ви можете дізнатися більше про Aspose.Note for Java API за допомогою документації. У разі будь-яких неясностей зв’яжіться з нами на форумі.