Add a new page and continue interaction

Asked

Viewed 64 times

0

I am generating a PDF with jsPDF, but when it reaches a certain limit of for interaction, there is a need to add a new page so you can increase the values to the PDF. I’m able to add a new page, but my for loop does not continue to add values to that page.

for (var i = 0; i < notas.length; i++) {
            if (notas[i].valid === true) {
                doc.text(notas[i].cpfCnpj, 1, i + y + 3 + z+1 );
                doc.text(notas[i].razaoSocial.substring(0, 20), 23, i + y + 3 + z+1);
                doc.text(notas[i].isSimplesNacional === "True" ? 'Sim' : 'Não', 72, i + y + 3 + z+1);
                doc.text(notas[i].descricaoPorte, 58, i + y + 3 + z + 1);
                doc.line(0, i + y + m, 230, i + y + m);
                y = y + 5;
                z = z + 1;
                m = m + 1;
            } else {
                z = z + 1;
                m = m + 1;
            }
            doc.text(notas[i].descricao.substring(0, 50) + '...' , 1, i + y + z+1);
            doc.text(notas[i].qtdRetido, 85, i + y + z + 1);
            doc.text(notas[i].qtdNaoRetido, 98, i + y + z + 1);
            doc.text(numberToReal(parseFloat(notas[i].valorServicoRetido)), 110, i + y + z + 1);
            doc.text(numberToReal(parseFloat(notas[i].valorServicoNaoRetido)), 122, i + y + z + 1);
            doc.text(numberToReal(parseFloat(notas[i].valorDeducoesRetido)), 137, i + y + z + 1);
            doc.text(numberToReal(parseFloat(notas[i].valorDeducoesNaoRetido)), 150, i + y + z + 1);
            doc.text(numberToReal(parseFloat(notas[i].valorBaseDeCalculoRetido)), 162, i + y + z + 1);
            doc.text(numberToReal(parseFloat(notas[i].valorBaseDeCalculoNaoRetido)), 175, i + y + z + 1);
            doc.text(numberToReal(parseFloat(notas[i].valorIssRetido)), 190, i + y + z + 1);
            doc.text(numberToReal(parseFloat(notas[i].valorIssNaoRetido)), 200, i + y + z + 1);
            if (i === pos) {
                pos = pos * 2;
                doc.addPage();
                doc.text('Teste em uma nova página', 1, i + y + 3 + z + 1);
            }

           // doc.line(0, i + v + 2, 230, i + v + z);
            y = y + 1;
        }

1 answer

0


Assuming that the variable pos already has a predefined value, you only need to position the condition if for the beginning of the interaction.

   for (var i = 0; i < notas.length; i++) {
       if (i === pos) {
            pos = pos * 2;
            doc.addPage();
        }
        if (notas[i].valid === true) {
            doc.text(notas[i].cpfCnpj, 1, i + y + 3 + z+1 );
            doc.text(notas[i].razaoSocial.substring(0, 20), 23, i + y + 3 + 
     z+1);
            doc.text(notas[i].isSimplesNacional === "True" ? 'Sim' : 'Não', 72, i + y + 3 + z+1);
            doc.text(notas[i].descricaoPorte, 58, i + y + 3 + z + 1);
            doc.line(0, i + y + m, 230, i + y + m);
            y = y + 5;
            z = z + 1;
            m = m + 1;
        } else {
            z = z + 1;
            m = m + 1;
        }
        doc.text(notas[i].descricao.substring(0, 50) + '...' , 1, i + y + z+1);
        doc.text(notas[i].qtdRetido, 85, i + y + z + 1);
        doc.text(notas[i].qtdNaoRetido, 98, i + y + z + 1);
        doc.text(numberToReal(parseFloat(notas[i].valorServicoRetido)), 110, i + y + z + 1);
        doc.text(numberToReal(parseFloat(notas[i].valorServicoNaoRetido)), 122, i + y + z + 1);
        doc.text(numberToReal(parseFloat(notas[i].valorDeducoesRetido)), 137, i + y + z + 1);
        doc.text(numberToReal(parseFloat(notas[i].valorDeducoesNaoRetido)), 150, i + y + z + 1);
        doc.text(numberToReal(parseFloat(notas[i].valorBaseDeCalculoRetido)), 162, i + y + z + 1);
        doc.text(numberToReal(parseFloat(notas[i].valorBaseDeCalculoNaoRetido)), 175, i + y + z + 1);
        doc.text(numberToReal(parseFloat(notas[i].valorIssRetido)), 190, i + y + z + 1);
        doc.text(numberToReal(parseFloat(notas[i].valorIssNaoRetido)), 200, i + y + z + 1);


       // doc.line(0, i + v + 2, 230, i + v + z);
        y = y + 1;
    }

Browser other questions tagged

You are not signed in. Login or sign up in order to post.