일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- generate entity
- Java
- 도커
- dto valid
- swagger
- Next.js 14
- jvm
- SpringBoot
- jpa entity자동
- 초기 구축
- spring boot
- CentOS6
- java8
- 초기 세팅
- spring
- NextJS
- docker 설치
- ollama langflow
- MySQL
- header setting
- React
- docker
- JavaScript
- 헤더 설정
- memcached
- java9
- 리눅스
- custom valid
- JPA
- generate pojos
- Today
- Total
개발자의 길
[js] jquery datatable pdf 한글 깨짐 해결 본문
기본적으로 datatable 사이트에서 제공해주는
pdfmake.min.js
vfs_fonts.js
파일이 pdf 다운로드 기능을 제공해 주는 플러그인이다.
하지만 한글 영역을 다운로드 하면 공백으로 나오는 현상을 볼수 있다.(참고로 html5 버전으로 했음)
이유는 두개 파일에 한글이 지원되는 폰트가 안들어갔다.
그래서 한국 사람들이 열심히 찾은 방법을 정리하겠다.
우선 grunt 라는 걸 이용해야 했다.(참고 : https://nuli.navercorp.com/community/article/1132682)
grunt는 node를 통해 설치한다.
1. npm install -g grunt-cli
2. https://nuli.navercorp.com/community/article/1132682 에 들어가서 소스를 다운받는다. pdfmake-master.zip 이라는 파일로 다운로드 된다.
3. 압축을 푼후 \examples\fonts 경로에 원하는 폰트를 추가한다.
4. cmd창에서 해당 폴더로 이동후
npm install grunt --save-dev
npm init 실행
Gruntfile.js 파일이 생성된것을 볼수 있다.
해당 파일을 열어보면
grunt.loadNpmTasks('grunt-mocha-cov');
grunt.loadNpmTasks('grunt-jsdoc');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-text-replace');
grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-dump-dir');
grunt.loadNpmTasks('grunt-contrib-concat');
이 보인다. 이것들을 제각각 다 인스톨 한다.
npm install grunt-mocha-cov --save-dev
npm install grunt-jsdoc --save-dev
npm install grunt-contrib-jshint --save-dev
npm install grunt-text-replace --save-dev
npm install grunt-browserify --save-dev
npm install grunt-contrib-uglify --save-dev
npm install grunt-dump-dir --save-dev
npm install grunt-contrib-concat --save-dev
다 끝났으면
grunt dump_dir 실행
그럼 \build 폴더에 vfs-fonts가 새로 생성 될 것이다.
5. 같은 경로 있는 pdfmake.js(pdfmake.min.js) 파일을 열어서
Roboto:{normal:"Roboto-Regular.ttf",bold:"Roboto-Medium.ttf",italics:"Roboto-Italic.ttf",bolditalics:"Roboto-Italic.ttf"}
가 있는 곳에
hangul:{normal:"malgun.ttf",bold:"malgunbd.ttf",italics:"malgun.ttf",bolditalics:"malgun.ttf"}
을 추가해주고
위에 Roboto 선언 된 부분 빼고 나머지 Roboto 라고 써 있는 부분을 다 hangul 로 바꿔 주면 된다.
끝..
다 귀찮으니까, 완성 된 파일을 첨부 하겠다.
'2. JS' 카테고리의 다른 글
[javascript] blob 데이터 이미지 다운로드 (0) | 2022.10.13 |
---|---|
[javascript] location 변수에 대한 값들 (0) | 2021.06.10 |
[JavaScript] 요소의 절대좌표 상대좌표 구하기 (0) | 2021.04.29 |
[javascript] json 객체 복사하기 (0) | 2020.12.03 |
XSS 크로스 도메인 ajax 연동 방법 - jsonp 예제 (2) | 2019.01.30 |
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.