我正在做的是使用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);
Run Code Online (Sandbox Code Playgroud)
没有什么能阻止reportTitle离开页面
use*_*946 78
好的,我已经解决了这个问题.我使用了jsPDF函数,splitTextToSize(text,maxlen,options).此函数返回一个字符串数组.幸运的是,用于写入文档的jsPDF text()函数接受字符串和字符串数组.
var splitTitle = doc.splitTextToSize(reportTitle, 180);
doc.text(15, 20, splitTitle);
Run Code Online (Sandbox Code Playgroud)
小智 23
您可以只使用文本函数maxWidth
中的可选参数。
doc.text(15, 15, reportTitle, { maxWidth: 40 });
Run Code Online (Sandbox Code Playgroud)
一旦文本达到最大宽度,就会分割文本并从下一行开始。
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');
Run Code Online (Sandbox Code Playgroud)
小智 6
要将长文本字符串包装到页面,请使用以下代码:
var line = 25 // Line height to start text at
var lineHeight = 5
var leftMargin = 20
var wrapWidth = 180
var longString = 'Long text string goes here'
var splitText = doc.splitTextToSize(longString, wrapWidth)
for (var i = 0, length = splitText.length; i < length; i++) {
// loop thru each line and increase
doc.text(splitText[i], leftMargin, line)
line = lineHeight + line
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
31337 次 |
最近记录: |