W dokumencie programu OneNote możemy gromadzić i organizować notatki w postaci tekstu, rysunków, wycinków ekranu i komentarzy dźwiękowych. Czasami może zaistnieć potrzeba programowego wyodrębnienia tekstu lub obrazów z dokumentów programu OneNote w aplikacjach Java. Taka ekstrakcja pozwala nam na ponowne wykorzystanie wyodrębnionego tekstu lub obrazów osobno. W tym artykule dowiemy się, jak wyodrębnić tekst lub obrazy z dokumentów programu OneNote za pomocą języka Java.
W tym artykule zostaną omówione następujące tematy:
- Java API do wyodrębniania tekstu lub obrazów z programu OneNote
- Wyodrębnij cały tekst z programu OneNote przy użyciu języka Java
- Pobierz tekst z określonych stron OneNote w Javie
- Wyodrębnij obrazy z programu OneNote przy użyciu języka Java
Java API do wyodrębniania tekstu lub obrazów z programu OneNote
Do wyodrębniania tekstu i obrazów z dokumentu OneNote będziemy używać interfejsu API Aspose.Note for Java. Pozwala programowo tworzyć, czytać i konwertować dokumenty OneNote bez użycia MS OneNote. Pobierz plik JAR interfejsu API lub dodaj następującą konfigurację pom.xml w aplikacji Java opartej na 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>
Wyodrębnij cały tekst z dokumentu programu OneNote przy użyciu języka Java
Możemy łatwo wyodrębnić cały tekst z dokumentu OneNote, wykonując czynności podane poniżej:
- Najpierw załaduj plik programu OneNote przy użyciu klasy Document.
- Następnie wywołaj metodę GetChildNodes z RichText.class jako argumentem, aby wyodrębnić tekst.
- Na koniec pokaż wyodrębniony tekst.
Poniższy przykładowy kod pokazuje, jak wyodrębnić cały tekst z pliku programu OneNote przy użyciu języka Java.
// Ten przykład kodu demonstruje, jak wyodrębnić cały tekst z dokumentu OneNode.
// Załaduj dokument do Aspose.Note.
Document oneFile = new Document("D:\\Files\\Note\\Sample1.one");
// Pobierz tekst
List<RichText> textNodes = (List<RichText>) oneFile.getChildNodes(RichText.class);
for (RichText richText : textNodes) {
if(!richText.getText().isBlank())
System.out.println(richText.getText().toString());
}
Pobierz tekst z określonych stron dokumentu OneNote w Javie
Możemy wyodrębnić tekst z określonych stron dokumentu OneNote, wykonując czynności podane poniżej:
- Najpierw załaduj plik programu OneNote przy użyciu klasy Document.
- Następnie wywołaj metodę GetChildNodes z argumentem Page.class, aby wyodrębnić strony.
- Następnie pobierz określoną stronę według jej indeksu z listy stron.
- Następnie pobierz listę elementów tekstowych dla strony, używając metody GetChildNodes z argumentem RichText.class.
- Na koniec pokaż wyodrębniony tekst.
Poniższy przykładowy kod pokazuje, jak wyodrębnić tekst z określonej strony pliku programu OneNote przy użyciu języka Java.
// Ten przykład kodu demonstruje, jak wyodrębnić tekst z określonej strony dokumentu OneNode.
// Załaduj dokument do Aspose.Note
Document doc = new Document("D:\\Files\\Note\\Sample1.one");
// Uzyskaj listę węzłów strony
List<Page> pages = doc.getChildNodes(Page.class);
// Pobierz stronę według indeksu
Page page = pages.get(0);
// Pobierz tekst strony
List<RichText> textNodes = (List<RichText>) page.getChildNodes(RichText.class);
// Pokaż tekst
for (RichText richText : textNodes) {
if(!richText.getText().isBlank())
System.out.println(richText.getText().toString());
}
Możemy przeglądać wszystkie strony jedna po drugiej i wyodrębniać tekst dla każdej strony, jak pokazano w przykładzie kodu podanym poniżej:
// Ten przykład kodu demonstruje, jak wyodrębnić tekst ze stron dokumentu OneNode.
// Załaduj dokument do Aspose.Note.
Document doc = new Document("D:\\Files\\Note\\Sample1.one");
// Uzyskaj listę węzłów strony
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();
}
Wyodrębnij obrazy z dokumentu programu OneNote przy użyciu języka Java
Możemy również wyodrębnić obrazy z dokumentu OneNote, wykonując czynności podane poniżej:
- Najpierw załaduj plik programu OneNote przy użyciu klasy Document.
- Następnie pobierz listę obrazów za pomocą metody GetChildNodes z argumentem Image.class.
- Na koniec pokaż właściwości obrazu i zapisz na dysku lokalnym.
Poniższy przykładowy kod pokazuje, jak wyodrębnić obrazy z pliku programu OneNote przy użyciu języka Java.
// Ten przykład kodu demonstruje, jak wyodrębnić obrazy z dokumentu OneNode.
// Załaduj dokument do Aspose.Note
Document doc = new Document("D:\\Files\\Note\\Sample1.one");
// Pobierz wszystkie obrazy
List<Image> list = doc.getChildNodes(Image.class);
System.out.printf("Total Images: %s\n\n", list.size());
// Przejrzyj listę
for (int i = 0; i < list.size(); i++) {
Image image = list.get(i);
// Pokaż właściwości obrazu
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();
// Zapisz obraz
byte[] buffer = image.getBytes();
Files.write(Paths.get("D:\\Files\\Note\\Images\\" + outputFile), buffer);
System.out.printf("File saved: %s\n", outputFile);
}
Uzyskaj bezpłatną licencję
Możesz uzyskać bezpłatną tymczasową licencję, aby wypróbować bibliotekę bez ograniczeń ewaluacyjnych.
Wniosek
W tym artykule nauczyliśmy się, jak wyodrębnić tekst z całego dokumentu OneNote lub z określonej strony dokumentu. Widzieliśmy również, jak programowo wyodrębniać obrazy z dokumentów OneNote. Poza tym możesz dowiedzieć się więcej o Aspose.Note for Java API korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.