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

테이블 이용시 에러 #13

Closed
ghost opened this issue Mar 9, 2018 · 3 comments
Closed

테이블 이용시 에러 #13

ghost opened this issue Mar 9, 2018 · 3 comments

Comments

@ghost
Copy link

ghost commented Mar 9, 2018

hwp 빈 문서에다 표 하나만 그려놓고 해당 rows와 cell수에 맞게 입력을 하려하고있습니다. (ReWrite 형식으로)

  1. 섹션을 우선 구하고
    Section s = hwpFile.getBodyText().getSectionList().get(0);

  2. 첫 파라그래프에
    Paragraph p = s.getParagraph(0);

  3. 테이블을 가져와서
    ControlTable ct = (ControlTable) p.getControlList().get(0);

  4. 테이블 정보를 입력하고
    ct.getTable().addCellCountOfRow(3);
    ct.addNewRow();
    ArrayList rows = ct.getRowList();
    for(int i = 0; i < 3; i++)
    {
    Cell cell = rows.get(0).addNewCell();
    Paragraph para = cell.getParagraphList().addNewParagraph();
    para.createText();
    para.getText().addString("" + i);
    }

  5. 파일을 씁니다.
    long filename = new Date().getTime();
    HWPWriter.toFile(hwpFile, "D:/upload/" + filename + ".hwp");

3번 테이블 가져오는데서 에러가 나네요. 에러코드는 아래와 같습니다.
kr.dogfoot.hwplib.object.bodytext.control.ControlSectionDefine cannot be cast to kr.dogfoot.hwplib.object.bodytext.control.ControlTable

추가적으로 아예 컨트롤을 생성해서 p.addNewGsoControl 을 사용하면 NullPointer가 ForPharagraph.java에서 잡혀버리구요.

어떤식으로 테이블 추가나 수정을 해야하나요?

@neolord0
Copy link
Owner

섹션(Section)의 첫번째 문단(Paragraph)에는 섹션 정의 컨트롤(ControlSectionDefine) 과 단 정의 컨트롤(ControlColumnDefine)이 있고, 나머지 컨트롤들이 나열됩니다.

문단에 첫번째 표은

ControlTable ct = (ControlTable) p.getControlList().get(2); // 세번째 컨트롤 임..

으로 구해야 합니다.

테이블에 대한 샘플은 조망간 올리겠습니다.

@ghost
Copy link
Author

ghost commented Mar 19, 2018

수고에 감사드립니다.
저도 계속 써보고있긴한데... POI구조와 비교하면서까지 시간을 들였으나
남이 만든걸 단 시간에 해석하긴 힘든가봅니다..

@neolord0
Copy link
Owner

동적으로 표 만들어주는 샘플 올렸습니다.

kr.dogfoot.hwplib.test.TestMakingTable을 참고 하세요..

@neolord0 neolord0 closed this as completed Apr 4, 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

1 participant