Podemos coletar e organizar notas na forma de texto, desenhos, recortes de tela e comentários de áudio no documento do OneNote. Ocasionalmente, podemos precisar extrair texto ou imagens de documentos do OneNote programaticamente em aplicativos Java. Essa extração nos permite reutilizar o texto ou as imagens extraídas separadamente. Neste artigo, aprenderemos como extrair texto ou imagens de documentos do OneNote usando Java.
Os seguintes tópicos serão abordados neste artigo:
- API Java para extrair texto ou imagens do OneNote
- Extraia todo o texto do OneNote usando Java
- Obter texto de páginas específicas do OneNote em Java
- Extrair imagens do OneNote usando Java
API Java para extrair texto ou imagens do OneNote
Para extrair texto e imagens do documento OneNote, usaremos a API Aspose.Note for Java. Ele permite criar, ler e converter documentos do OneNote programaticamente sem usar o MS OneNote. Faça o download do JAR da API ou adicione a seguinte configuração pom.xml em um aplicativo Java baseado em 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>
Extraia todo o texto do documento do OneNote usando Java
Podemos extrair facilmente todo o texto do documento do OneNote seguindo as etapas abaixo:
- Em primeiro lugar, carregue um arquivo do OneNote usando a classe Document.
- Depois disso, chame o método GetChildNodes com RichText.class como argumento para extrair texto.
- Por fim, mostre o texto extraído.
O exemplo de código a seguir mostra como extrair todo o texto de um arquivo do OneNote usando Java.
// Este exemplo de código demonstra como extrair todo o texto do documento OneNode.
// Carregue o documento em Aspose.Note.
Document oneFile = new Document("D:\\Files\\Note\\Sample1.one");
// Recuperar texto
List<RichText> textNodes = (List<RichText>) oneFile.getChildNodes(RichText.class);
for (RichText richText : textNodes) {
if(!richText.getText().isBlank())
System.out.println(richText.getText().toString());
}
Obter texto de páginas específicas do documento do OneNote em Java
Podemos extrair texto de páginas específicas do documento do OneNote seguindo as etapas abaixo:
- Em primeiro lugar, carregue um arquivo do OneNote usando a classe Document.
- Em seguida, chame o método GetChildNodes com Page.class como argumento para extrair páginas.
- Em seguida, obtenha uma página específica por seu índice da lista de páginas.
- Depois disso, obtenha uma lista de itens de texto para a página usando o método GetChildNodes com RichText.class como argumento.
- Por fim, mostre o texto extraído.
O exemplo de código a seguir mostra como extrair texto de uma página específica de um arquivo do OneNote usando Java.
// Este exemplo de código demonstra como extrair texto de uma página específica de um documento OneNode.
// Carregue o documento no Aspose.Note
Document doc = new Document("D:\\Files\\Note\\Sample1.one");
// Obter lista de nós de página
List<Page> pages = doc.getChildNodes(Page.class);
// Obter página por índice
Page page = pages.get(0);
// Obter texto da página
List<RichText> textNodes = (List<RichText>) page.getChildNodes(RichText.class);
// Mostrar texto
for (RichText richText : textNodes) {
if(!richText.getText().isBlank())
System.out.println(richText.getText().toString());
}
Podemos iterar em todas as páginas uma a uma e extrair o texto de cada página, conforme mostrado no exemplo de código abaixo:
// Este exemplo de código demonstra como extrair texto de páginas de um documento OneNode.
// Carregue o documento em Aspose.Note.
Document doc = new Document("D:\\Files\\Note\\Sample1.one");
// Obter lista de nós de página
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();
}
Extrair imagens do documento do OneNote usando Java
Também podemos extrair imagens do documento do OneNote seguindo as etapas abaixo:
- Em primeiro lugar, carregue um arquivo do OneNote usando a classe Document.
- Depois disso, obtenha uma lista de imagens usando o método GetChildNodes com o Image.class como argumento.
- Por fim, mostre as propriedades da imagem e salve no disco local.
O exemplo de código a seguir mostra como extrair imagens de um arquivo do OneNote usando Java.
// Este exemplo de código demonstra como extrair imagens do documento OneNode.
// Carregue o documento no Aspose.Note
Document doc = new Document("D:\\Files\\Note\\Sample1.one");
// Obter todas as imagens
List<Image> list = doc.getChildNodes(Image.class);
System.out.printf("Total Images: %s\n\n", list.size());
// Percorra a lista
for (int i = 0; i < list.size(); i++) {
Image image = list.get(i);
// Mostrar propriedades da imagem
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();
// Salve a imagem
byte[] buffer = image.getBytes();
Files.write(Paths.get("D:\\Files\\Note\\Images\\" + outputFile), buffer);
System.out.printf("File saved: %s\n", outputFile);
}
Obtenha uma licença gratuita
Você pode obter uma licença temporária gratuita para experimentar a biblioteca sem limitações de avaliação.
Conclusão
Neste artigo, aprendemos como extrair texto de todo o documento do OneNote ou de uma página específica do documento. Também vimos como extrair imagens de documentos do OneNote programaticamente. Além disso, você pode aprender mais sobre o Aspose.Note para API Java usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.