ebandal / H2Orestart

한컴파일을 LibreOffice에서 읽을 수 있도록 하는 extension입니다.
GNU General Public License v3.0
74 stars 6 forks source link

HWP3.0 형식 지원 여부 및 파일 형식 감지 방법 문의 #10

Closed OctopusET closed 11 months ago

OctopusET commented 11 months ago

LibreOffice는 hwpfilter를 통해 hwp3.0 (hwp97) 형식을 지원하는 것으로 알고 있습니다. 지금 이 확장은 HWP3.0까지 지원하는 것 일까요? hwp3.0 파일을 변환 시도 했을 때 문제없이 변환되긴 했습니다. 이것이 확장을 통해 변환되는 것인지, 아님 LibreOffice 자체 기능을 통해 변환이 되는 것인지 궁금합니다.

또한, https://github.com/ebandal/H2Orestart/issues/7 이 이슈로 인해 hwp/hwpx파일 확인 방식이 달라진것으로 알고 있습니다. 다만 제가 코드를 살펴봤을때 header를 확인하긴 하나 실제로 hwp, hwpx 포멧의 형식과 같은지 점검하는 코드를 찾아보지 못했습니다. 혹시나 제가 놓친것이라면 해당 부분의 코드를 알고 싶습니다.

테스트용 HWP3.0 파일: https://bugs.astron.com/file_download.php?file_id=322&type=bug 관련 출처: https://bugs.astron.com/view.php?id=418

ebandal commented 11 months ago

@OctopusET 본 확장은 한글문서파일형식 5.0의 hwp와 한글표준문서형식 Hwpx를 지원하며, hwp3.0 형식은 지원하지 않습니다. LibreOiffce에서 읽혀졌다면 LibreOffice 자체에서 읽어들인 것입니다.

본확장에서 hwp, hwpx 포맷의 형식을 인식하는 방법은 다음과 같습니다.

Hwp97은 LibreOffice 자체에서 지원하므로, 본 확장의 H2Orestart.detect()가 호출되지 않을것입니다.
LibreOffice가 지원못하는 포맷이어야 설치된 확장에게 지원하는지 물어보게 됩니다. 만약 확장의 detect() 가 호출된다고 하더라도 본 확장이 Hwp97의 파일헤더를 읽지 못할 것이므로 exception이 발생하게 되어 null을 리턴하고, 그러면 LibreOiffce는 본 확장에게 filter() 메소드를 호출하지 않게 됩니다.
filter() 메소드가 호출되어야 비로소 파일을 읽을 수 있는데 말이죠.

OctopusET commented 11 months ago

상세한 설명에 감사드립니다 이슈는 닫도록 하겠습니다