добавление кириллицы в jsPDF

Рейтинг: 1Ответов: 1Опубликовано: 12.03.2023

Для создания pdf документа использую jsPDF который принимает либо html строку либо выбранный контейнер, но если в выбранном html есть кириллица, то всё ломается. Пробовал импортировать шрифты как показывается здесь, но всё безрезультатно, разве что встроенными методами текст писать а не html строкой. При использовании html2convas дела лучше, но вся кириллица сыпется

export const createPdfFromHtml = (fileName, stringHtml, orientation) => {
  const divContainer = document.createElement('div')
  divContainer.id = "pdfContainer";
  divContainer.innerHTML = stringHtml

  document.getElementById('app').appendChild(divContainer)

  const node = document.getElementById("pdfContainer");
  
  const doc = new jsPDF({format: 'a4',orientation});
  doc.html(node,{
        callback: function (doc) {
        doc.save();
        }
    });
}

Ответы

▲ 1

1.Попробуйте добавить шрифт, который поддерживает кириллицу, как вариант DejaVuSans.ttf. Добавили:

doc.addFont('/path/to/DejaVuSans.ttf', 'DejaVuSans', 'normal');

Включили:

doc.setFont('DejaVuSans');
  1. Для работы с канвой пробуйте явно задавать кодировку в настройках html2canvas

    encoding: 'utf-8'

  2. Ну и как вариант, если библиотека pdfmake не замеченная в таких проблемах