OneNoteドキュメントでは、テキスト、描画、画面の切り抜き、音声解説の形式でメモを収集して整理できます。 JavaアプリケーションでプログラムによってOneNoteドキュメントからテキストや画像を抽出する必要がある場合があります。このような抽出により、抽出されたテキストまたは画像を個別に再利用できます。この記事では、Javaを使用してOneNoteドキュメントからテキストまたは画像を抽出する方法を学習します。
この記事では、次のトピックについて説明します。
- OneNoteからテキストまたは画像を抽出するJavaAPI
- Javaを使用してOneNoteからすべてのテキストを抽出する
- JavaでOneNoteの特定のページからテキストを取得する
- Javaを使用してOneNoteから画像を抽出する
OneNoteからテキストまたは画像を抽出するJavaAPI
OneNoteドキュメントからテキストと画像を抽出するには、Aspose.Note for JavaAPIを使用します。これにより、MS OneNoteを使用せずに、プログラムでOneNoteドキュメントを作成、読み取り、変換できます。 APIのJARをダウンロードするか、MavenベースのJavaアプリケーションに次のpom.xml構成を追加してください。
<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>
Javaを使用してOneNoteドキュメントからすべてのテキストを抽出する
以下の手順に従って、OneNoteドキュメントからすべてのテキストを簡単に抽出できます。
- まず、Documentクラスを使用してOneNoteファイルを読み込みます。
- その後、RichText.classを引数としてGetChildNodesメソッドを呼び出し、テキストを抽出します。
- 最後に、抽出したテキストを表示します。
次のコードサンプルは、Javaを使用してOneNoteファイルからすべてのテキストを抽出する方法を示しています。
// このコード例は、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());
}
JavaでOneNoteドキュメントの特定のページからテキストを取得する
以下の手順に従って、OneNoteドキュメントの特定のページからテキストを抽出できます。
- まず、Documentクラスを使用してOneNoteファイルを読み込みます。
- 次に、Page.classを引数としてGetChildNodesメソッドを呼び出し、ページを抽出します。
- 次に、ページのリストからインデックスによって特定のページを取得します。
- その後、RichText.classを引数としてGetChildNodesメソッドを使用して、ページのテキストアイテムのリストを取得します。
- 最後に、抽出したテキストを表示します。
次のコードサンプルは、Javaを使用してOneNoteファイルの特定のページからテキストを抽出する方法を示しています。
// このコード例は、OneNodeドキュメントの特定のページからテキストを抽出する方法を示しています。
// ドキュメントをAsposeにロードします。注
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());
}
以下に示すコードサンプルに示すように、すべてのページを1つずつ繰り返し、各ページのテキストを抽出する場合があります。
// このコード例は、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();
}
Javaを使用してOneNoteドキュメントから画像を抽出する
以下の手順に従って、OneNoteドキュメントから画像を抽出することもできます。
- まず、Documentクラスを使用してOneNoteファイルを読み込みます。
- その後、Image.classを引数として、GetChildNodesメソッドを使用して画像のリストを取得します。
- 最後に、画像のプロパティを表示して、ローカルディスクに保存します。
次のコードサンプルは、Javaを使用してOneNoteファイルから画像を抽出する方法を示しています。
// このコード例は、OneNodeドキュメントから画像を抽出する方法を示しています。
// ドキュメントをAsposeにロードします。注
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 forJavaAPIの詳細を学ぶことができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。