Vi kan samla in och organisera anteckningar i form av text, ritningar, skärmklipp och ljudkommentarer i OneNote-dokumentet. Vi kan ibland behöva extrahera text eller bilder från OneNote-dokument programmatiskt i Java-applikationer. Sådan extrahering gör att vi kan återanvända den extraherade texten eller bilderna separat. I den här artikeln kommer vi att lära oss hur man extraherar text eller bilder från OneNote-dokument med Java.
Följande ämnen ska behandlas i den här artikeln:
- Java API för att extrahera text eller bilder från OneNote
- Extrahera all text från OneNote med Java
- Få text från specifika sidor i OneNote i Java
- Extrahera bilder från OneNote med Java
Java API för att extrahera text eller bilder från OneNote
För att extrahera text och bilder från OneNote-dokumentet kommer vi att använda Aspose.Note for Java API. Det gör det möjligt att skapa, läsa och konvertera OneNote-dokument programmatiskt utan att använda MS OneNote. Vänligen antingen ladda ner JAR för API:t eller lägg till följande pom.xml-konfiguration i en Maven-baserad Java-applikation.
<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>
Extrahera all text från OneNote-dokument med Java
Vi kan enkelt extrahera all text från OneNote-dokumentet genom att följa stegen nedan:
- Först laddar du en OneNote-fil med klassen Document.
- Efter det, anropa metoden GetChildNodes med RichText.class som argument för att extrahera text.
- Till sist, visa den extraherade texten.
Följande kodexempel visar hur man extraherar all text från en OneNote-fil med Java.
// Detta kodexempel visar hur man extraherar all text från OneNode-dokument.
// Ladda dokumentet i Aspose.Note.
Document oneFile = new Document("D:\\Files\\Note\\Sample1.one");
// Hämta text
List<RichText> textNodes = (List<RichText>) oneFile.getChildNodes(RichText.class);
for (RichText richText : textNodes) {
if(!richText.getText().isBlank())
System.out.println(richText.getText().toString());
}
Få text från specifika sidor i OneNote-dokument i Java
Vi kan extrahera text från specifika sidor i OneNote-dokumentet genom att följa stegen nedan:
- Först laddar du en OneNote-fil med klassen Document.
- Anrop sedan metoden GetChildNodes med Page.class som argument för att extrahera sidor.
- Hämta sedan en specifik sida efter dess index från listan över sidor.
- Efter det får du en lista med textobjekt för sidan med metoden GetChildNodes med RichText.class som argument.
- Till sist, visa den extraherade texten.
Följande kodexempel visar hur man extraherar text från en specifik sida i en OneNote-fil med Java.
// Detta kodexempel visar hur man extraherar text från en specifik sida i ett OneNode-dokument.
// Ladda dokumentet i Aspose.Note
Document doc = new Document("D:\\Files\\Note\\Sample1.one");
// Få lista över sidnoder
List<Page> pages = doc.getChildNodes(Page.class);
// Hämta sida för index
Page page = pages.get(0);
// Få text på sidan
List<RichText> textNodes = (List<RichText>) page.getChildNodes(RichText.class);
// Visa text
for (RichText richText : textNodes) {
if(!richText.getText().isBlank())
System.out.println(richText.getText().toString());
}
Vi kan iterera över alla sidor en efter en och extrahera texten för varje sida som visas i kodexemplet nedan:
// Detta kodexempel visar hur man extraherar text från sidor i ett OneNode-dokument.
// Ladda dokumentet i Aspose.Note.
Document doc = new Document("D:\\Files\\Note\\Sample1.one");
// Få lista över sidnoder
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();
}
Extrahera bilder från OneNote-dokument med Java
Vi kan också extrahera bilder från OneNote-dokumentet genom att följa stegen nedan:
- Först laddar du en OneNote-fil med klassen Document.
- Efter det får du en lista med bilder med metoden GetChildNodes med Image.class som argument.
- Slutligen, visa bildens egenskaper och spara på lokal disk.
Följande kodexempel visar hur man extraherar bilder från en OneNote-fil med Java.
// Detta kodexempel visar hur man extraherar bilder från OneNode-dokument.
// Ladda dokumentet i Aspose.Note
Document doc = new Document("D:\\Files\\Note\\Sample1.one");
// Få alla bilder
List<Image> list = doc.getChildNodes(Image.class);
System.out.printf("Total Images: %s\n\n", list.size());
// Gå igenom listan
for (int i = 0; i < list.size(); i++) {
Image image = list.get(i);
// Visa bildegenskaper
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();
// Spara bilden
byte[] buffer = image.getBytes();
Files.write(Paths.get("D:\\Files\\Note\\Images\\" + outputFile), buffer);
System.out.printf("File saved: %s\n", outputFile);
}
Skaffa en gratis licens
Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.
Slutsats
I den här artikeln har vi lärt oss hur man extraherar text från hela OneNote-dokumentet eller från en specifik sida i dokumentet. Vi har också sett hur man extraherar bilder från OneNote-dokument programmatiskt. Dessutom kan du lära dig mer om Aspose.Note för Java API med hjälp av dokumentationen. I händelse av någon tvetydighet är du välkommen att kontakta oss på forumet.