2014-11-13 8 views
11

Özel fontları jsPDF içine eklemek mümkün mü? Temel kütüphanesi ileÖzel yazı tipi yüzleri jsPDF'de mi?

, ben 'doc.getFontList()' log konsol eğer olsun:

Kurye, Helvetica, Times, kurye, Helvetica, kat

Ama ben söylemek 'Comic Sans' kullanmak isterim (o değil; o)) yapılabilir mi?

Daha da iyisi, yazı tipini yerel olarak saklayabilir miyim ve @ font-face ile sitede bildirilmiş olabilir mi?

cevap

17

Genel API'de mevcut addFont yöntemini ortaya çıkarmak için jsPDF.js değiştirilerek bu mümkün oldu. - API.setFont, API.setFontSize, API.setFontType vb

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

Ben netlik için diğer yazı yöntemlerinin yakın bu yöntemi koymak: Aşağıdaki ekleyin

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

: için jsPDF.js yılında

, bak

Şimdi kodunuzda kullanın:

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

Bu, jsPDF ve sistem yazı tiplerini yüklemeden önce css ile birlikte gelen font tipi yazı tipleriyle birlikte çalışır. Bunu, jsPDF'nin eklenti çerçevesini kullanarak yapmanın daha iyi bir yolu olabilir, ancak bu hızlı ve kirli çözüm sizi en azından gitmenize neden olacak.

Not olduğunu doc.getFontList() will değil gösterisi eklendi yazı: Bu yazabilmek için

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

teşekkürler. Çalışmanızı aldım ve jsPDF'nin master'ı olarak birleştirilmiş bir PR (https://github.com/MrRio/jsPDF/pull/475) yayınladım. İşte burada: https://github.com/MrRio/jsPDF/blob/master/jspdf.js#L1595. Tekrar teşekkürler! –

+1

Bu, Google Yazı Tipleri ile benim için çalışmaz. Hiçbir şey eklenmedi, hata gösterilmedi. –

+0

Bununla birlikte, yazı tipinin pdf'nin kendisinde hiçbir zaman gömülü olmadığına, ancak tarayıcı yazı tipi havuzundan okunamayacağına dikkat edin. Pdf'yi kaydetmeye çalışırsanız, özel yazı tipini kullanan parçalar görünmez olur. –