jsPDF - fromHTML и пользовательские шрифты

Я использую библиотеку jsPDF с плагином fromHtml, чтобы сгенерировать PDF-документ из содержимого HTML, и он работает хорошо.

Теперь я также пытаюсь добавить пользовательский шрифт с помощью этого плагина: https://github.com/sphilee/jsPDF-CustomFonts-support

Тем не менее, два плагина, похоже, плохо взаимодействуют друг с другом, когда я генерирую PDF, он переключается на стандартный шрифт.

Когда я использую плагин для пользовательских шрифтов, он работает.

Это мой код:

    var pdf = new jsPDF('p', 'pt', 'letter');
    pdf.addFileToVFS('CustomFont.tff', 'base64 of .tff file');
    pdf.addFont('CustomFont.tff', 'CustomFont', 'normal');
    pdf.setFont('CustomFont');
    var source = $('#pdf')[0];
    var margins = {
        top: 50,
        bottom: 60,
        left: 40,
        width: 520
    };
    pdf.fromHTML(
        source,
        margins.left,
        margins.top, {
            'width': margins.width, 
            'elementHandlers': specialElementHandlers
        },
        function (dispose) {
            pdf.save('Test.pdf');
        }, margins);

1 ответ

Я также столкнулся с этой проблемой сегодня. Оказывается, jsPDF имеет встроенную поддержку пользовательских шрифтов. Так что вам не нужно включать jspdf.customfonts.js больше.

Вы все еще можете использовать jspdf-customfonts для генерации default_vfs.js файл:

(function (jsPDFAPI) { 
"use strict";
jsPDFAPI.addFileToVFS('somefont.ttf','AAEAAA...');
})(jsPDF.API);

Затем в своем коде вы можете использовать этот шрифт, используя следующий код:

pdf.addFont('somefont.ttf', 'somefont', 'normal');
pdf.setFont('somefont');

Инструкция о том, как генерировать default_vfs.js:

  1. Бежать npm install внутри node_modules\jspdf-customfonts каталог
  2. Скопируйте ваши шрифты в подкаталог fonts.
  3. Бежать node makeFonts.js создавать default_vfs.js,
Другие вопросы по тегам