2014-11-13 19 views
11

Có thể bao gồm phông chữ tùy chỉnh trong jsPDF không?Khuôn mặt phông chữ tùy chỉnh trong jsPDF?

Với thư viện cơ bản, nếu tôi console log 'doc.getFontList()' Tôi nhận được:

Courier, Helvetica, Times, chuyển phát nhanh, helvetica, lần

Nhưng, nói tôi muốn sử dụng 'Comic Sans' (không phải là tôi sẽ; o)) nó có thể được thực hiện?

Thậm chí tốt hơn, tôi có thể sử dụng phông chữ được lưu trữ cục bộ và đã được khai báo trong trang web bằng @ phông chữ?

Trả lời

17

Tôi thấy điều này là có thể bằng cách sửa đổi jsPDF.js để hiển thị phương thức addFont hiện có trong API công khai.

Trong jsPDF.js, tìm kiếm:

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

Thêm dòng sau:

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

tôi đặt phương pháp này gần phương pháp phông chữ khác cho rõ ràng - API.setFont, API.setFontSize, API.setFontType vv

Bây giờ trong mã của bạn, sử dụng:

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

Điều này phù hợp với tôi với phông chữ phông chữ @ đi kèm với css trước khi tải jsPDF, cũng như phông chữ hệ thống. Có lẽ một cách tốt hơn để làm điều này bằng cách sử dụng khuôn khổ plugin của jsPDF, nhưng giải pháp nhanh chóng và dơ bẩn này ít nhất cũng giúp bạn đi.

Lưu ý rằng doc.getFontList() sẽ không chương trình thêm phông chữ:

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

Cảm ơn đã gửi bài này. Tôi đã làm việc của bạn và ban hành một PR (https://github.com/MrRio/jsPDF/pull/475), mà vừa được sáp nhập vào chủ của jsPDF. Đây là: https://github.com/MrRio/jsPDF/blob/master/jspdf.js#L1595. Cảm ơn một lần nữa! –

+1

Điều này không phù hợp với tôi với Google Fonts. Không có gì được thêm vào, không có lỗi nào được hiển thị. –

+0

Tuy nhiên, lưu ý rằng phông chữ không bao giờ được nhúng vào bản pdf nhưng đọc từ kho phông chữ của trình duyệt. Nếu bạn cố gắng lưu pdf, các phần bằng phông chữ tùy chỉnh sẽ ẩn. –

Các vấn đề liên quan