2014-11-13 2 views
11

jsPDF에 사용자 정의 글꼴을 포함 할 수 있습니까? 기본 라이브러리와jsPDF에서 사용자 정의 글꼴 얼굴?

, 내가 'doc.getFontList을()'로그 콘솔 만약 내가 얻을 :

택배, 돋움, 바탕, 시간, 택배, 돋움, 시간

하지만, 말 '코믹 산스 (Comic Sans)'를 사용하고 싶다.

글꼴을 로컬로 저장하고 @ font-face를 사용하여 사이트에 선언 할 수 있습니까?

답변

17

jsPDF.js을 수정하여 공개 API에서 기존 addFont 메서드를 노출함으로써 가능하다는 것을 알았습니다. - API.setFont, API.setFontSize, API.setFontType

API.addFont = function(postScriptName, fontName, fontStyle) { 
     addFont(postScriptName, fontName, fontStyle, 'StandardEncoding'); 
    }; 

내가 명확성을 위해 다른 폰트 방법 근처에이 방법을 넣어 다음 추가

//--------------------------------------- 
// Public API 

: 대한 jsPDF.js에서

코드에서 다음을 사용하십시오.

doc.addFont('ComicSansMS', 'Comic Sans', 'normal'); 
doc.setFont('Comic Sans'); 
doc.text(50,50,'Hello World'); 

jsPDF 및 시스템 글꼴을로드하기 전에 css에 포함 된 @ font-face 글꼴로 저에게 적합합니다. jsPDF의 플러그인 프레임 워크를 사용하여이 작업을 수행하는 것이 더 좋은 방법 일 수 있지만,이 빠르고 더러운 솔루션은 적어도 당신을 가야합니다.

참고 doc.getFontList() 것이다 하지 쇼에 추가 글꼴이를 게시

// TODO: iterate over fonts array or return copy of fontmap instead in case more are ever added. 
+6

감사합니다. 나는 당신의 일을하고 PR (https://github.com/MrRio/jsPDF/pull/475)을 발행했는데 jsPDF의 마스터로 합병되었습니다. 여기 있습니다 : https://github.com/MrRio/jsPDF/blob/master/jspdf.js#L1595. 다시 한 번 감사드립니다! –

+1

Google 글꼴로는이 글꼴이 저에게 적합하지 않습니다. 아무것도 추가되지 않고 오류가 표시되지 않습니다. –

+0

그러나 글꼴은 pdf 자체에 포함되지 않지만 브라우저 글꼴 저장소에서 읽습니다. pdf를 저장하려고하면 사용자 정의 글꼴을 사용하는 부분이 보이지 않습니다. –