neolord0 / hwplib

hwp library for java
Apache License 2.0
451 stars 142 forks source link

가로정렬시 텍스트 겹침문제 #236

Closed Charlie-Oh closed 12 months ago

Charlie-Oh commented 1 year ago

안녕하세요. 현재 테이블을 작성하고 셀을 병합시키려는데 행이 2줄, 열이 6칸인 테이블입니다. 첫째행은 컬럼Title이고 두번째행은 값인데, 값이 없을 경우 "값이 없습니다."를 출력하고 6칸의 열을 병합시키고자 하는데

TableCellMerger.mergeCell(table, 1, 0, 0, 6); 위와같이해보기도 하고 여러값을 넣어보기도 했는데 손상된 파일 또는 병합이 이루어지지않습니다..

TableCellMerger.mergeCell(table, 0, 0, 1, 6); 위처럼 값을 넣는 경우에는 두번째 행이 아니라 첫번째 행이 병합되는건 확인됩니다..

제가 기초가 부족한건지 ㅠㅜ 의도대로 되지않아 답답한 마음에 문의를 남깁니다.. 감사합니다.

neolord0 commented 1 year ago

안녕하세요.

mergeCell(ControlTable table, int startRow, int startCol, int rowSpan, int colSpan) 함수의 매개변수를 확인하세요.. startRow = 행 인덱스, startCol = 열 인덱스 rowSpan = 합쳐질 셀의 rowSpan colSpan =합쳐질 셀의 colSpan

rowSpan, colSpan 에 대해서는 html

을 참고하세요.

Charlie-Oh commented 1 year ago

앞서 문의에대한 답변 너무 감사드립니다..!

추가로 문의드리고싶은게 생겼는데요ㅜㅠㅜ 캡션과 테이블내 텍스트의 가로 정렬을 따로 설정하고 싶습니다. (캡션: 우측정렬, 테이블 텍스트: 가운데정렬)

캡션쪽 설정부분에는 ParaShape ps = HwpFile.DocInfo.addNewParaShape(); ps.getProperty1().setAlignment(Alignment.Right); int paraShapeId= HwpFile.DocInfo.getParaShapeList().size() - 1; Paragraph.getHeader().setParaShapeId(paraShapeId);

테이블내 본문쪽에는 ParaShape ps = HwpFile.DocInfo.addNewParaShape(); ps.getProperty1().setAlignment(Alignment.Center); int paraShapeId= HwpFile.DocInfo.getParaShapeList().size() - 1; Paragraph.getHeader().setParaShapeId(paraShapeId);

위와같이 코드를 입력하였고 캡션 우측, 테이블내 텍스트 가운데정렬이 잘 적용은 되었으나 테이블 셀크기보다 텍스트가 긴 경우 자동줄바꿈이 되지않고 알아볼수없을정도로 겹쳐져서 보여집니다.. (본문에만 적용했을 경우에는 텍스트 겹침현상이 없으나.. 캡션쪽에는 우측정렬을 따로 설정하고싶습니다 ㅠㅠ)

도움부탁드리겠습니다 ㅠㅠ

neolord0 commented 1 year ago

안녕하세요. 앞에 대문에서 말씀 드린 것처럼.. 회사에서 이 라이브러리를 사용한 제품및 기술지원 서비스를 판매하고 있습니다. 그래서, 이런 질문에는 답변하지 않겠습니다. 원하는 파일을 한글로 만들어서 라이브러리로 읽은 다음 분석하는 방법으로 해결해야 합니다.

Charlie-Oh commented 1 year ago

답변 감사드립니다. 학원에서 진행중인 프로젝트에서 한글문서로 작성, 다운 기능을 구현해보고자 하고 있습니다. 디버깅하는법을 몰라서.. 이래저래 노가다로 시도하고 찾아보니 줄간격이 0으로 바뀌어 생긴문제로 확인되서 줄간격을 직접 지정해주어 일단 해결은 하였습니다. 같은 문제가 있으신분이 계실까하여 답글로 남겼습니다. 줄간격을 살펴보시면 될것같습니다~