OneNote 파싱-문서의 텍스트 Blob을 얻는 방법?


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

문서를 파싱하는 데 먼 길을 갔지만 길을 잃었습니다.

https://drive.google.com/file/d/1uROTEnKeBKU08CG_K5zdDTGHa178LgBK/view?usp=sharing 구문 분석에 사용중인 OneNote 파일은 다음과 같습니다.

이 문서의 섹션은 다음과 같습니다

구문 분석 결과에서 Section1TextArea1 및 Section1TextArea2를 볼 수 없습니다. 그래서 일종의 주요 데이터 구문 분석 요소 또는 무언가가 없습니다.

확실히 OneNote 파일 자체에 있습니다. Hex 뷰어에서 볼 수 있습니다.

컨텐츠의 16 진 편집기보기

다음은 JSON 구문 분석 출력입니다. https://gist.github.com/nddipiazza/02d2252d357b3b02a6b9ab1050474267

사양 문서 에이 독점 형식을 구문 분석하는 데 필요한 매우 중요한 정보가 누락 된 것 같습니다.

실제 텍스트 내용을 얻지 못하는 주요 요소는 무엇입니까?

답변:


2

나는 그것을 알아. OneNote의 속성 값은 다음 중 하나를 가질 수 있다는 것을 이해해야했습니다.

  • 이진 내용
  • 아스키 텍스트 내용
  • UTF-16LE 내용.

여러 가지가 뿌려져 있습니다.

또한 방금 루트 파일 트리 전체를 파싱했습니다. 중복 텍스트가 많이 발생하지만 실제로는 신경 쓰지 않습니다.

프로젝트는 테스트 케이스와 수정 사항으로 업데이트됩니다 : https://github.com/nddipiazza/onenote-parser-java/tree/master/src/main/java/org/apache/tika/onenote

최신 정보:

아파치 tika PR을 방금 만들었습니다 : https://github.com/apache/tika/pull/300

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.