Saltar al contenido

jsPDF justificar texto

Nuestro team redactor ha estado horas buscando para darle solución a tus preguntas, te dejamos la solución por eso esperamos servirte de gran apoyo.

Solución:

Le respondí en github. Escribí mi propio código de justificación en mi jsPDF refactorizado de acuerdo con su sugerencia.

Echale un vistazo…

https://github.com/MrRio/jsPDF/issues/1016#issuecomment-329957940

Editado:

Oh, espera, probablemente pueda ayudarte con una respuesta directa. Creo que solo tienes que cambiarlo así:

var wordSpacing = (Math.max(0, (pdfPageWidth - textWidth) / Math.max(1, nWords - 1)) * this.internal.scaleFactor);

if (align) 
    ...                
    else if (align === 'justify') 
        var wordSpacingPerLine = [];
        for (var i = 0, len = da.length; i < len; i++) 
            wordSpacingPerLine.push(((this.internal.pageSize.width - lineWidths[i]) / (da[i].split(" ").length - 1) * k).toFixed(2));
        
    
    else 
        throw new Error('Unrecognized alignment option, use "center" or "right".');
    
    prevX = x;
    text = '(' + da[0];

    let pdfPageWidth = this.internal.pageSize.width;
    let wordSpacing;
    if( align === 'justify' ) 
        text =  wordSpacingPerLine[0]  + ' Twn' + text;
    
    ...

Debe agregar el WordSpacing específico para cada línea excepto la última línea. La última línea se alinea a la izquierda.

Aquí un ejemplo:

BT
/F1 16 Tf
18.4 TL
0 g
4.869500000212597 Tw
28.35 813.54 Td
(Lorem ipsum dolor sit amet, consetetur abore et dolore) Tj
3.5284444446334158 Tw
0.00 -18.40 Td
(magna aliquyam erat, sed diam voluptua. At vero eos et) Tj
2.0876000001700574 Tw
0.00 -18.40 Td
(accusam et justo duo dolores et ea rebum. Stet clita kasd) Tj
1.329500000212585 Tw
0.00 -18.40 Td
(gubergren, no sea takimata sanctus est Lorem ipsum dolor) Tj
1.329500000212585 Tw
0.00 -18.40 Td
(sit amet.) Tj
ET

Si tienes algún reparo o disposición de prosperar nuestro crónica eres capaz de realizar una interpretación y con mucho gusto lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *