web-dev-qa-db-fra.com

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

Je crée un analyseur pour le .one extension de fichier que j'ajouterai au projet Apache Tika une fois terminé.

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-07d15576be5

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

Here is the section from this document

Je ne parviens pas à afficher les sections 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:

hex editor view of the content

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 (aux) me manque (s), ce qui m'empêche d'obtenir le contenu textuel?

16
Nicholas DiPiazza

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 juste 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

METTRE À JOUR:

Je viens de créer le Apika tika PR: https://github.com/Apache/tika/pull/3

2
Nicholas DiPiazza