Recuerda que en la informática cualquier problema casi siempre tiene varias soluciones, de igual modo te compartiremos la mejor y más óptimo.
Solución:
He escrito una extensión para jsPDF hace un tiempo que permite la alineación de texto (y por defecto se alinea arriba a la izquierda, en lugar de las cosas aleatorias que hace la función jsPDF’ .text).
El código está escrito en TypeScript (para agregar algunas anotaciones de tipo), lo que debería darle una idea bastante clara de qué parámetros hay.
Actualizar: Estos fragmentos se han corregido para que funcionen en la última versión a partir del 17/07/2019, gracias a Kaddath (consulte su comentario/historial de edición de esta publicación para obtener más detalles).
var splitRegex = /rn|r|n/g;
jsPDF.API.textEx = function (text: any, x: number, y: number, hAlign?: string, vAlign?: string) hAlign === 'right')
var alignSize = fontSize;
if (hAlign === 'center') alignSize *= 0.5;
if (lineCount > 1)
for (var iLine = 0; iLine < splittedText.length; iLine++)
this.text(splittedText[iLine],
x - this.getStringUnitWidth(splittedText[iLine]) * alignSize,
y);
y += fontSize * lineHeightProportion;
return this;
x -= this.getStringUnitWidth(text) * alignSize;
this.text(text, x, y);
return this;
;
javascript simple:
var splitRegex = /rn|r|n/g;
jsPDF.API.textEx = function (text, x, y, hAlign, vAlign) ;
Usarlo es tan simple como:
pdf.textEx('Example text', xPosition, yPosition, 'right', 'middle');
Imprime un texto cuyo centro derecho está en (xPosition, yPosition).
A partir de enero de 2021, podemos usar
doc.text("Test", 105, 10, "center"); // center align => pageWidth / 2
//doct.text(string , x , y, alignment);
La alineación se basa en la coordenada x, y es la distancia desde la parte superior.
Por ejemplo, doc.text("Test", 200, 10, "right");
alineará a la derecha el texto. Y doc.text("Test", 10, 10, "left");
alineará a la izquierda el texto.