Потеря контента при конвертации html в pdf с помощью jsPDF - PullRequest
0 голосов
/ 14 февраля 2020

В моем приложении React (на стороне клиента) у меня есть кнопка для создания PDF-файла, используя текущий контент html с jsPDF . Я использую . html () вместо .from HTML () , потому что мне нужно сохранить стили html в преобразовании PDF. Настоящая проблема - , когда я использую html () Я потерял много контента для структуры строк / столбцов страницы. Поэтому мне нужно масштабировать содержимое html в формате PDF, но я не знаю, как это сделать.

Мой код:

let doc = new jsPDF('p', 'pt', 'a4')
    let source = document.getElementById('pdfContent')

    doc.html( source, {
        callback: function (doc) {
            doc.save();
        }
     });

1 Ответ

1 голос
/ 18 февраля 2020

"Потерял много контента", если вы имели в виду, что ваш контент не может уместиться на страницу a4, то вы можете либо увеличить свою страницу, скажем, используя a3 вместо a4, либо вы можете уменьшить контент, используя scale в html2canvas. Масштаб может быть рассчитан на основе формата вашей страницы и размера элемента.

let doc = new jsPDF('p', 'pt', 'a4')

doc.html(document.getElementById('pdfContent'), {
    html2canvas: {
        scale: [yourScaleHere],
    },
    x: [margin],
    y: [margin],
    callback: function (doc) {
        window.open(doc.output('bloburl'));
    }
});

Если вам не нужен стандартный размер страницы, вы можете просто настроить страницу в соответствии с вашим содержанием. например, let pdf = new jsPDF('p', 'pt', [612, 1200]);

...