Перенос слов в сгенерированный 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 убегать со страницы
4 ответов
хорошо, я решил это. Я использовал функцию jsPDF, splitTextToSize (text, maxlen, options). Эта функция возвращает массив строк. К счастью, функция jspdf text (), которая используется для записи в документ, принимает как строки, так и массивы строк.
var splitTitle = doc.splitTextToSize(reportTitle, 180);
doc.text(15, 20, splitTitle);
проблема автоматической подкачки и переноса текста в 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');
Если вам нужно динамически добавлять новые строки, вы хотите получить доступ к массиву, возвращаемому 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;
}
}
когда мы используем linebreak в jsPDF, мы получаем сообщение об ошибке b.матч не определен, чтобы решить эту ошибку просто unminify js и заменить б.матч С строка (b).матч и u получит эту ошибку дважды, просто замените оба, а затем мы получим Си.сплит не определено, просто сделайте то же самое в этом случае замените его на строка (c).матч и мы сделали. Теперь вы можете увидеть разрывы строк в pdf. Спасибо