如何使用jspdf居中对齐文本

How to align text in center using jspdf

如何使用 jsPDF 对齐文本中心。

var doc = new jsPDF();
doc.text(40, 250, 'Hi How are you');

如果您使用的是最新版本 (1.1.135),api 对文本功能进行了一些更改。现在显示为:

API.text = function(text, x, y, flags, angle, align);

如果您不需要使用标志或角度,您可以简单地使用:

var doc = new jsPDF();
doc.text('Hi How are you', 40, 250, 'center');

请记住,center 调用现在使用 x 参数作为文本字符串的中心,而不是像渲染左对齐时那样使用最左边的边框。

Link to source

编辑:

或者您可以像这样计算正确的 x 偏移量以正常使用文本函数:

var text = "Hi How are you",
    xOffset = (doc.internal.pageSize.width / 2) - (doc.getStringUnitWidth(text) * doc.internal.getFontSize() / 2); 
doc.text(text, xOffset, 250);

Angular 6. 页脚水平居中对齐

var doc = new jsPDF();
var pageHeight = doc.internal.pageSize.height || doc.internal.pageSize.getHeight();
var pageWidth = doc.internal.pageSize.width || doc.internal.pageSize.getWidth();


// FOOTER
let str = "Your footer text";
doc.setTextColor(100);
doc.setFontSize(10);
doc.text(str, pageWidth / 2, pageHeight  - 10, {align: 'center'});
doc.save("example.pdf");

以上答案对我不起作用,我最终做了以下操作以使文本居中

let textX = (doc.internal.pageSize.getWidth() - doc.getTextWidth(text))/2
doc.text(text, textX, textY);

2022:我发现 JSPDF 有问题。花了一段时间才弄清楚如何为 PHP 应用程序而不是 JS 前端框架安装广告中的 'runs in a browser' 实现。文档中的任何地方都没有提到需要 window.jsPDF = window.jspdf.jsPDF; 的一行,我不得不逐个浏览下载的示例才能找到它。现在我发现中心文本功能不起作用。在 2 个不同的本地环境和一个 JSFiddle 中,在多个浏览器上,它在实现 align:center 选项时将文本发送到页面左侧。虽然上述解决方案有效,但如果文本长于一行,它就会崩溃,顺便说一句,这是另一个开箱即用的错误 - 文本用完文档而不是换行,并且没有换行选项。所以,在所有这些时间之后,我似乎运气不好,我将不得不走另一条路。插件未维护,应在文档中注明。建议不要浪费你的时间。