OneNote解析-ドキュメントのテキストBlobにアクセスする方法?


16

.oneファイル拡張子のパーサーを作成しています。これが終了したら、Apache Tikaプロジェクトに追加します。

これが、私が作成しているAPL 2.0ライセンスのオープンソースプロジェクトです。https//github.com/nddipiazza/onenote-parser-java

ここで仕様書を使用しました:https : //docs.microsoft.com/en-us/openspecs/office_file_formats/ms-one/73d22548-a613-4350-8c23-07d15576be50

出発点として、このオープンソースのC ++プロジェクトからコードを移植しました:https : //github.com/dropbox/onenote-parser

文書の解析に長い道のりを歩んできましたが、障害になりました。

これが、解析に使用しているOneNoteファイルです。https//drive.google.com/file/d/1uROTEnKeBKU08CG_K5zdDTGHa178LgBK/view?usp = sharing

これはこのドキュメントのセクションです

解析結果でSection1TextArea1とSection1TextArea2を表示できません。だから私はある種の重要なデータ解析要素か何かが欠けています。

それは間違いなくOneNoteファイル自体にあります。Hexビューアで確認できます。

コンテンツの16進エディタビュー

JSON解析の出力は次のとおりです。https//gist.github.com/nddipiazza/02d2252d357b3b02a6b9ab1050474267

仕様書には、この独自フォーマットを解析するために必要ないくつかの非常に重要な情報が欠けているように感じます。

どの主要な要素が欠けているので、実際のテキストコンテンツを取得できませんか?

回答:


2

私はそれを考え出した。OneNoteのプロパティ値は次のいずれかになる可能性があることを理解する必要がありました。

  • バイナリコンテンツ
  • アスキーテキストコンテンツ
  • UTF-16LEコンテンツ。

さまざまなものが散りばめられています。

また、私は先に進んで、ルートファイルツリー全体を解析しました。それは多くの重複したテキストをもたらしますが、私は本当に気にしません。

プロジェクトはテストケースと修正で更新されています:https : //github.com/nddipiazza/onenote-parser-java/tree/master/src/main/java/org/apache/tika/onenote

更新:

Apache Tika PRを作成しました:https : //github.com/apache/tika/pull/300

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.