본문 바로가기
Programming/Go

[FPDF] 한글 처리

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

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

 

지금은

fpdf.SetFont("Arial", "", 12)

pdf.SetFont("times", "", 22)

이런 식으로 글꼴을 받고 있다.

 

여기서 잠깐!!

"Arial", "times" 폰트는 원래 제공해주는 폰트인데 한글 한글은 지원이 안 된다.

그래서 한글 폰트를 다운로드하여서 적용해줬다.

 

Apple 산돌고딕 Neo.zip
8.94MB

나는 이 폰트를 다운로드하여서 적용시켰다.

 

 

많은 글꼴 중에 "AppleSDGothicNeoM"을 넣고 싶다 하면

일단 자신의 프로젝트 경로를 잘 설정해서 글꼴 파일을 넣어주고 (AppleSDGothicNeoM.ttf)

// ttf 파일 등록. 경로 유의
pdf.AddUTF8Font("AppleSDGothicNeoM", "", "../internal/pkg/pdf/AppleSDGothicNeoM.ttf")

이렇게 써주면 된다.

이때 .ttf가 있는 파일 경로를 유의해서 작성하자!

위에 "../internal/pkg/pdf/AppleSDGothicNeoM.ttf" 이 경로는 내 프로젝트에서 유효한 경로이므로

자신의 .ttf 경로를 잘 설정해주어야 한다.

만약 main.go와 같은 경로에 있으면 그냥 "AppleSDGothicNeoM.ttf" 이렇게 쓰면 된다!

 

이제 자신이 쓰고 싶은 폰트를 넣어서 font 등록을 해주면 완성이다~!

// font 등록
pdf.SetFont("AppleSDGothicNeoM", "", 15)

familyStr은 같아야 한다.

 

pdf 출력 화면

 


전체 코드 (main.go)

package main

import (
	"fmt"
	"github.com/jung-kurt/gofpdf"
)

func main() {
	var err error

	pdf := gofpdf.New("P", "mm", "A4", "")
	w, h := pdf.GetPageSize()
	fmt.Printf("width=%v, height=%v\n", w, h)

	pdf.AddPage()

	pdf.SetAuthor("author", true)

	// ttf 파일 등록. 경로 유의
	pdf.AddUTF8Font("AppleSDGothicNeoM", "", "AppleSDGothicNeoM.ttf")
    
	// font 등록
	pdf.SetFont("AppleSDGothicNeoM", "", 15)

	pdf.Text(100, 100, "가나다")

	err = pdf.OutputFileAndClose("Test.pdf")
	if err != nil {
		panic(err)
	}
}

 

Test를 할 때!

Teriminal에서

> go get github.com/jung-kurt/gofpdf

import 받아줘야 한다.


전체 파일 구조

 


추가로~!

글꼴을 더 추가하고 싶으면! 간단하다.

그냥 똑같이 해주면 된다 ㅎㅎ

 

pdf.AddUTF8Font("AppleSDGothicNeoM", "", "../src/font/AppleSDGothicNeoM.ttf")
pdf.AddUTF8Font("AppleSDGothicNeoL", "", "../src/font/AppleSDGothicNeoL.ttf")

이런 식으로 Font 경로 유의해서 AddUTF8Font만 추가해주면 된다.

 

여기서도 경로 주의!!

보통 main.go와 같은 위치면

pdf.AddUTF8Font("AppleSDGothicNeoM", "", "AppleSDGothicNeoM.ttf")
pdf.AddUTF8Font("AppleSDGothicNeoL", "", "AppleSDGothicNeoL.ttf")

그냥 이런식으로 써주면 된다.

 

혹시 이해 안 되거나 궁금한 거 있으시면 댓글 남겨주세요~!

728x90

댓글