OneNote ayrıştırma - belgedeki Metin Bloblarına nasıl ulaşılır?


16

.oneBittiğinde Apache Tika projesine ekleyeceğim dosya uzantısı için bir ayrıştırıcı oluşturuyorum .

İşte oluşturduğum APL 2.0 lisanslı Açık Kaynak projesi: https://github.com/nddipiazza/onenote-parser-java

Teknik özellik belgesini burada kullandım: https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-one/73d22548-a613-4350-8c23-07d15576be50

Başlangıç ​​noktası olarak, bu açık kaynak C ++ projesinin kodunu taşıdım: https://github.com/dropbox/onenote-parser

Belgelerin ayrıştırılmasında uzun bir yol kat ettim, ama bir yol engeline çarptım.

Ayrıştırmak için kullandığım OneNote dosyası: https://drive.google.com/file/d/1uROTEnKeBKU08CG_K5zdDTGHa178LgBK/view?usp=sharing

İşte bu belgenin bölümü

Ayrıştırılmış sonuçlarımda Section1TextArea1 ve Section1TextArea2 görüntüleyemiyorum. Yani bir tür anahtar veri ayrıştırma elemanı ya da başka bir şey eksik.

Kesinlikle OneNote dosyasının içinde. Onaltılı görüntüleyicide görebilirsiniz:

onaltılık editör içeriği görüntüleme

JSON ayrıştırma çıktısı şudur: https://gist.github.com/nddipiazza/02d2252d357b3b02a6b9ab1050474267

Spesifikasyon belgesinin bu tescilli formatı ayrıştırmak için gereken bazı çok önemli bilgileri kaçırdığını hissediyorum.

Gerçek metin içeriğini almama neden olan hangi ana unsurları kaçırıyorum?

Yanıtlar:


2

Bunu anladım. OneNote'taki özellik değerlerinin şunlardan birine sahip olabileceği bir anlayıştı:

  • İkili içerikler
  • Ascii metin içeriği
  • UTF-16LE içeriği.

Serpiştirilmiş çeşitli var.

Ayrıca devam ettim ve tüm kök dosya ağacını ayrıştırdım. Yinelenen metin bir sürü sonuçlanacak ama gerçekten umurumda değil.

Proje test senaryoları ve düzeltme ile güncellenmiştir: https://github.com/nddipiazza/onenote-parser-java/tree/master/src/main/java/org/apache/tika/onenote

GÜNCELLEME:

Yeni apache tika PR'ı oluşturduk: https://github.com/apache/tika/pull/300

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.