Extrahera text eller bilder från OneNote-dokument med Java

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

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:

  1. Först laddar du en OneNote-fil med klassen Document.
  2. Efter det, anropa metoden GetChildNodes med RichText.class som argument för att extrahera text.
  3. 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());
}
Extrahera all text från OneNote-dokument med Java

Extrahera all text från OneNote-dokument med Java

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:

  1. Först laddar du en OneNote-fil med klassen Document.
  2. Anrop sedan metoden GetChildNodes med Page.class som argument för att extrahera sidor.
  3. Hämta sedan en specifik sida efter dess index från listan över sidor.
  4. Efter det får du en lista med textobjekt för sidan med metoden GetChildNodes med RichText.class som argument.
  5. 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();
}
Få text från specifika sidor i OneNote-dokument i Java

Få text från alla sidor en efter en i Java

Extrahera bilder från OneNote-dokument med Java

Vi kan också extrahera bilder från OneNote-dokumentet genom att följa stegen nedan:

  1. Först laddar du en OneNote-fil med klassen Document.
  2. Efter det får du en lista med bilder med metoden GetChildNodes med Image.class som argument.
  3. 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);
}
Extrahera bilder från OneNote-dokument med Java

Extrahera bilder från OneNote-dokument med Java

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.

Se även