728x90
Go언어로 PDF 템플릿을 받아서 서버에서 받아온 데이터를 찍는 프로젝트를 하고 있다.
지금은 pdf.Text()를 쓰고 있어서 긴 문장을 받아오면 자동으로 개행 처리가 안 되고 PDF 템플릿 밖으로 넘어간다.
어떻게 하면 개행 처리를 할 수 있을지 찾아보다가 MultiCell()을 발견했다!!
https://java-coding.tistory.com/49
자동으로 긴 문장도 개행 처리를 알아서 해준다!!
하지만 여기도 문제가 있다.
bottom에 margin 때문에 제한이 있다.
이 제한을 넘어가면 새로운 빈 페이지가 하나 더 생성되고 데이터들이 엉망으로 깨져서 찍힌다...
이 오류를 해결하기 위해 또 열심히 찾아본 결과!!!
pdf 객체 생성 후, bottom margin 최소화를 시켜줌으로써 bottom margin 제한 문제를 해결했다..
다 했다....ㅠㅠ!!
1. pdf 객체 생성 후, bottom margin 최소화
// 새로운 Fpdf 객체를 만듦
pdf := gofpdf.New("P", "mm", "A4", "")
// bottom margin 최소화
pdf.SetAutoPageBreak(false, 5)
2. MoveTo(), MultiCell()을 활용한 개행 처리
_, lineHt := pdf.GetFontSize()
pdf.MoveTo(ph.X, ph.Y)
pdf.MultiCell(0, lineHt*1.3, fmt.Sprintf("%s%s%s", op["prefix"], data["text"], op["suffix"]), gofpdf.BorderNone, gofpdf.AlignLeft, false)
다들 삽질하지 않고 잘 해결했으면 좋겠다 ㅎㅎ
잘 이해가 되지 않거나 궁금한 거 있으시면 댓글 달아주세요~!!
728x90
'Programming > Go' 카테고리의 다른 글
go-chart 사용해서 그래프 그리기 (0) | 2022.09.26 |
---|---|
Go(Golang) 학습할 때 유용한 사이트 (0) | 2022.08.22 |
Go(Golang)의 fmt.Errorf() (0) | 2022.08.19 |
[FPDF] 한글 처리 (0) | 2022.08.09 |
[FPDF] MultiCell (0) | 2022.08.02 |
댓글