Analyse OneNote - comment accéder aux blobs de texte dans le document?

16

Je crée un analyseur pour l' .oneextension de fichier, que lorsque j'aurai terminé, j'ajouterai au projet Apache Tika.

Voici le projet Open Source sous licence APL 2.0 que je crée: https://github.com/nddipiazza/onenote-parser-java

J'ai utilisé le document de spécification ici: https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-one/73d22548-a613-4350-8c23-07d15576be50

Comme point de départ, j'ai porté sur le code de ce projet C ++ open source: https://github.com/dropbox/onenote-parser

J'ai parcouru un long chemin dans l'analyse des documents, mais j'ai heurté un barrage routier.

Voici le fichier OneNote que j'utilise pour analyser: https://drive.google.com/file/d/1uROTEnKeBKU08CG_K5zdDTGHa178LgBK/view?usp=sharing

Voici la section de ce document

Je ne parviens pas à afficher Section1TextArea1 et Section1TextArea2 dans mes résultats analysés. Il me manque donc une sorte d'élément d'analyse de données clé ou quelque chose.

Il se trouve définitivement dans le fichier OneNote lui-même. Je peux le voir dans la visionneuse Hex:

éditeur hexadécimal vue du contenu

Voici la sortie d'analyse JSON: https://gist.github.com/nddipiazza/02d2252d357b3b02a6b9ab1050474267

J'ai l'impression que le document de spécification manque des informations très importantes nécessaires pour analyser ce format propriétaire.

Quel (s) élément (s) principal (s) me manque-t-il, ce qui m'empêche d'obtenir le contenu textuel réel?

Nicholas DiPiazza
la source

Réponses:

2

Je l'ai compris. Il s'agissait de comprendre que les valeurs de propriété dans OneNote peuvent avoir:

  • Contenu binaire
  • Contenu du texte Ascii
  • Contenu UTF-16LE.

Il y en a une variété saupoudrée partout.

De plus, je suis allé de l'avant et j'ai analysé toute l'arborescence des fichiers racine. Il en résultera beaucoup de texte en double mais je m'en fiche vraiment.

Le projet est mis à jour avec les cas de test et le correctif ici: https://github.com/nddipiazza/onenote-parser-java/tree/master/src/main/java/org/apache/tika/onenote

MISE À JOUR:

Je viens de créer l'apache tika PR: https://github.com/apache/tika/pull/300

Nicholas DiPiazza
la source