본문 바로가기
Programming/Go

[FPDF] MultiCell()을 활용한 개행(줄바꿈) 처리

by 코딩여걸 2022. 8. 9.
728x90

Go언어로 PDF 템플릿을 받아서 서버에서 받아온 데이터를 찍는 프로젝트를 하고 있다.

지금은 pdf.Text()를 쓰고 있어서 긴 문장을 받아오면 자동으로 개행 처리가 안 되고 PDF 템플릿 밖으로 넘어간다.

어떻게 하면 개행 처리를 할 수 있을지 찾아보다가 MultiCell()을 발견했다!!

https://java-coding.tistory.com/49

 

[FPDF] MultiCell

MultiCell(float w, float h, string txt [, mixed border [, string align [, boolean fill]]]) http://www.fpdf.org/en/doc/multicell.htm MultiCell www.fpdf.org 🌸 Description (설명) - MultiCell을 사용하..

java-coding.tistory.com

 

자동으로 긴 문장도 개행 처리를 알아서 해준다!!

하지만 여기도 문제가 있다.

 

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

댓글