Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

이미지 파싱하는 부분에 대해 질문이 있습니다. #38

Closed
iu7726 opened this issue Nov 20, 2018 · 5 comments
Closed

이미지 파싱하는 부분에 대해 질문이 있습니다. #38

iu7726 opened this issue Nov 20, 2018 · 5 comments

Comments

@iu7726
Copy link

iu7726 commented Nov 20, 2018

안녕하세요.

먼저 이런 훌륭한 라이브러리를 개발해 주신것에 대해 감사합니다.

제가 hwplib를 이용하여 viewer를 제작 중인데 이미지 부분이 순서대로 출력이 되지 않습니다.

현재는
idx = hwpFile.getDocInfo().getBinDataList().get(imgflag).getBinDataID()-1;
hwpFile.getBinData().getEmbeddedBinaryDataList().get(idx).getData()로 이미지를 뽑아내고 있는데 이미지가 순서대로 출력이 되지 않아 질문 드립니다.(imgflag는 for문 변수입니다.)

혹시 사용법이 잘못되었나요??

사용법이 잘 못 된것이라면 사용법을 알려주실 수 있으신가요?

제 이메일은 iu7726@naver.com이고 답글이나 이메일로 편하신걸로 답변 주시면 감사하겠습니다.

다시 한번 라이브러리 개발해 주셔서 감사합니다!

@iu7726
Copy link
Author

iu7726 commented Nov 20, 2018

hwplib문의.zip
테스한 파일입니다.

@neolord0
Copy link
Owner

네.. 검토해 보겠습니다.

@iu7726
Copy link
Author

iu7726 commented Nov 21, 2018

넵 답변감사합니다!

@neolord0
Copy link
Owner

한글은 그림을 저장할 때는

  1. 그림의 바이너리 데이터는 hwpFile.getBinData()에 저장하고,
  2. 이 바이너리 데이터에 대한 정보를 공통 영역(DocInfo,getBinDataList())을 객체로 만들어 저장하고
  3. 이 공통 영역의 객체를 그림을 사용한 컨트롤에서 링크합니다.
    iu7726 님이 코드가 1)~2) 까지 되어 있습니다.

iu7726 님이 코드로 나온 그림의 순서는 문서 상에 순서가 아닌 한글 프로그램에서 그림을 삽입한 순서입니다.

문서에서 표시된 순서대로 저장하고 싶으면,

  1. 문서 내용 부분(BodyText)에서 그림을 사용한 컨트롤을 찾아서 그림의 인덱스을 구하고,
  2. DocInfo,getBinDataList()에서 이 인덱스에 해당하는 객체를 찾는
    과정이 필요합니다.

BodyText는 섹션의 리스트이고, 섹션은 문단(Paragraph)의 리스트이며, 문단은 여러개의 컨트롤 포함하고 있습니다. 이렇게 하향 루프를 돌면서, 전체 컨트롤를 조사해서 그림이 사용된 컨트롤을 찾아야 합니다.

이렇게 해도, 예제와 같이 단순한 양식의 문서는 이런 형태로 가능합니다만,
파일 상의 컨트롤의 순서가 문서 상의 순서랑 반대인 경우에는 좀 이상하게 나올 확률이 있습니다.
이 기능을 완벽하게 지원하려면, 한글 뷰어처럼 문서 내의 컨트롤의 위치를 계산해주는 알고리즘이 필요한데, 이 부분은 아직 모르는 부분이라....

일단 위에 방식대로 하면, 어느 정도 iu7726 님이 원하는 기능이 구현될 거라 생각됩니다.

@iu7726
Copy link
Author

iu7726 commented Nov 23, 2018

자세한 답변 감사합니다!

@iu7726 iu7726 closed this as completed Nov 23, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants