Add a new page and continue the interaction

1

I am generating a PDF with jsPDF, but when it reaches a certain threshold of the for interaction, there is a need to add a new page so that you can increment the values to the PDF. I am 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;
        }
    
asked by anonymous 20.07.2018 / 16:52

1 answer

1
Assuming the pos variable already has a pre-set value, you would only need to position the if condition for the start 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;
    }
    
24.07.2018 / 13:45