Аналіз OneNote - як потрапити до Text Blobs у документі?


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

Ось розділ цього документа

Я не можу переглянути секції1TextArea1 та Section1TextArea2 у своїх розібраних результатах. Тож мені не вистачає якогось елемента для аналізу ключових даних чи чогось іншого.

Це безумовно в самому файлі OneNote. Я бачу це в переглядачі Hex:

шестигранний редактор перегляд вмісту

Ось вихід синтаксичного аналізу JSON: https://gist.github.com/nddipiazza/02d2252d357b3b02a6b9ab1050474267

Я відчуваю, що в специфікаційному документі відсутні деякі дуже важливі відомості, необхідні для розбору цього формату.

Який основний елемент (и), який я пропускаю, призводить до того, що я не отримую фактичного текстового вмісту?

Відповіді:


2

Я зрозумів це. Це було питання про розуміння того, що значення властивостей в OneNote можуть мати:

  • Бінарний вміст
  • Зміст тексту Ascii
  • Вміст UTF-16LE.

Існує різноманітність їх, посипаних по всьому.

Також я просто пішов вперед і проаналізував усе дерево кореневих файлів. Це призведе до безлічі повторюваних текстів, але мені це зовсім не байдуже.

Проект оновлюється тестовими кейсами та виправленням тут: https://github.com/nddipiazza/onenote-parser-java/tree/master/src/main/java/org/apache/tika/onenote

ОНОВЛЕННЯ:

Щойно створений піар apache tika: https://github.com/apache/tika/pull/300

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.