poi 프로젝트 진행 중
화면 textarea에서 저장한 개행 문자 char(13)을 poi에서 적용시키기 위해 검색한 결과를 바탕으로
내 입맛에 맞게 변환했다.
문자열에 캐리지 리턴이 포함되면
전부 다 스플릿을 해서 문자 배열에 넣고 한 줄 기입하고 캐리지 리턴을 하는 형식으로 만들었다.
아래 replaceAll 메서드는 사용하지 않아도 된다.
// CPSR 개행 및 쌍따옴표 변환
@SuppressWarnings("unchecked")
private XWPFRun convertCaReturnAndQuotation(String targetStr, XWPFRun run) throws Exception {
String convertTmpStr = targetStr.replaceAll(""", "\"");
if (convertTmpStr.contains("\n")) {
String[] stringsOnNewLines = convertTmpStr.split("\n");
for (int i = 0; i < stringsOnNewLines.length; i++) {
String textForLine = stringsOnNewLines[i];
run.setText(textForLine);
run.addCarriageReturn();
}
}
else {
run.setText(convertTmpStr);
}
return run;
}
+@
poi에서 테이블을 생성하고 머징한 셀 안쪽에서는 CarriageReturn이 먹히질 않는 문제점이 생겼었다.
이 경우 run.addBreak();를 통해 해결했다.
addBreak는 페이지를 넘기는 역할로만 알고 있었는데
ex) run.addBreak(BreakType.PAGE);
addBreak()에 인자 값을 넘겨주지 않을 경우 shift + enter와 같이 개행이 되는 것으로 확인 됐다.
https://stackoverflow.com/questions/14830667/insert-a-line-break-inside-a-paragraph-in-xwpfdocument
2021.09.13 - [poi] - [poi] word addbreak로 적용한 단락 글 깨짐 정렬