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
:
- Бежать
npm install
внутриnode_modules\jspdf-customfonts
каталог - Скопируйте ваши шрифты в подкаталог fonts.
- Бежать
node makeFonts.js
создаватьdefault_vfs.js
,