Перенос слов в сгенерированном PDF (с использованием jsPDF)?
то, что я делаю, это использование jsPDF для создания PDF файла, который я сгенерировал. Однако я не уверен, как обернуть заголовок (добавленный с помощью функции text()). Длина заголовка будет варьироваться от графика к графику. В настоящее время мои заголовки бегут со страницы. Любая помощь будет оценена!
Это код, который у меня есть до сих пор:
var doc = new jsPDF();
doc.setFontSize(18);
doc.text(15, 15, reportTitle);
doc.addImage(outputURL, 'JPEG', 15, 40, 180, 100);
doc.save(reportTitle);
Ничто не препятствует запуску страницы reportTitle страницы
Ответы
Ответ 1
Хорошо, я решил это. Я использовал функцию jsPDF, splitTextToSize (текст, maxlen, опции). Эта функция возвращает массив строк. К счастью, функция jsPDF text(), которая используется для записи в документ, принимает как строки, так и массивы строк.
var splitTitle = doc.splitTextToSize(reportTitle, 180);
doc.text(15, 20, splitTitle);
Ответ 2
Если вам необходимо динамически добавлять новые строки, вы хотите получить доступ к массиву, возвращаемому doc.splitTextToSize, а затем добавить больше вертикального пространства по мере прохождения каждой строки:
var y = 0, lengthOfPage = 500, text = [a bunch of text elements];
//looping thru each text item
for(var i = 0, textlength = text.length ; i < textlength ; i++) {
var splitTitle = doc.splitTextToSize(text[i], lengthOfPage);
//loop thru each line and output while increasing the vertical space
for(var c = 0, stlength = splitTitle.length ; c < stlength ; c++){
doc.text(y, 20, splitTitle[c]);
y = y + 10;
}
}
Ответ 3
Когда мы используем linebreak в jsPDF, получаем ошибку, указывающую, что b.match не определен, для решения этой ошибки просто unminify js и замените b.match на String (b). match, и u получит эту ошибку дважды, просто заменив оба, а затем мы получим c.split, а не просто выполните то же самое в этом случае замените его на String (c)., и мы закончили. Теперь вы можете увидеть разрывы строк в pdf. Спасибо вам
Ответ 4
Ошибка автоматического подкачки и переноса текста в JSPDF может выполняться с помощью следующего кода
var splitTitle = doc.splitTextToSize($('#textarea').val(), 270);
var pageHeight = doc.internal.pageSize.height;
doc.setFontType("normal");
doc.setFontSize("11");
var y = 7;
for (var i = 0; i < splitTitle.length; i++) {
if (y > 280) {
y = 10;
doc.addPage();
}
doc.text(15, y, splitTitle[i]);
y = y + 7;
}
doc.save('my.pdf');