Analisi di OneNote: come accedere alle BLOB di testo nel documento?


16

Sto creando un parser per l' .oneestensione del file, che una volta finito aggiungerò al progetto Apache Tika.

Ecco il progetto Open Source con licenza APL 2.0 che sto creando: https://github.com/nddipiazza/onenote-parser-java

Ho usato il documento di specifica qui: https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-one/73d22548-a613-4350-8c23-07d15576be50

Come punto di partenza, ho portato il codice da questo progetto C ++ open source: https://github.com/dropbox/onenote-parser

Ho fatto molta strada nell'analisi dei documenti, ma ho colpito un blocco stradale.

Ecco il file OneNote che sto usando per analizzare: https://drive.google.com/file/d/1uROTEnKeBKU08CG_K5zdDTGHa178LgBK/view?usp=sharing

Ecco la sezione di questo documento

Non riesco a visualizzare Section1TextArea1 e Section1TextArea2 nei miei risultati analizzati. Quindi mi manca una sorta di elemento di analisi dei dati chiave o qualcosa del genere.

È sicuramente nel file OneNote stesso. Posso vederlo nel visualizzatore esadecimale:

vista dell'editor esadecimale del contenuto

Ecco l'output di analisi JSON: https://gist.github.com/nddipiazza/02d2252d357b3b02a6b9ab1050474267

Credo che nel documento sulle specifiche manchino alcune informazioni molto importanti necessarie per analizzare questo formato proprietario.

Quali elementi principali mi mancano e non ottengo il contenuto effettivo del testo?

Risposte:


2

L'avevo capito. Era una questione di capire che i valori delle proprietà in OneNote possono avere:

  • Contenuti binari
  • Contenuto del testo Ascii
  • Contenuti UTF-16LE.

Ce ne sono molti sparsi ovunque.

Inoltre sono andato avanti e ho analizzato l'intero albero dei file di root. Il risultato sarà un sacco di testo duplicato, ma non mi interessa davvero.

Il progetto viene aggiornato con casi di test e la correzione qui: https://github.com/nddipiazza/onenote-parser-java/tree/master/src/main/java/org/apache/tika/onenote

AGGIORNARE:

Ho appena creato il PR apika tika: https://github.com/apache/tika/pull/300

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.