Содержание сокращается, если оно не помещается внутри страницы, jspdf. Как показать контент на другой странице? - PullRequest
0 голосов
/ 30 октября 2019

Я использую jspdf в угловых. Я создаю PDF на своем .ts (я не использую html).

Я печатаю на своем документе содержимое массива объектов, которые я получаю из моего API.

Проблема в том, что, когда содержимое массива не помещается на странице, содержимое обрезается. Я попытался добавить новую страницу, но страница пуста.

Вот мой метод:

onNewReporte() {
    const doc = new jsPDF();
    const pageWidth =
      doc.internal.pageSize.width || doc.internal.pageSize.getWidth();
    // let imgData = this.logo();
    const pageHeight = doc.internal.pageSize.height;

    //nombre paciente
    const pacienteInfo = this.consultas.map(a => a.pacienteId);
    const pacienteObj = pacienteInfo[0];
    const pacienteArray = Object.values(pacienteObj);
    const pacienteName = pacienteArray[2];

    //nombre guardian
    const guardian = pacienteArray[1];

    //formato fecha
    var options = { year: "numeric", month: "long", day: "numeric" };

    //El pdf
    doc.setFontType("bold");
    doc.text("Historial de Consultas Médicas", pageWidth / 2, 75, "center");
    doc.setFontType("normal");
    doc.setFontSize(14);
    doc.text(
      "Paciente: " + pacienteName + "       Guardian: " + guardian,
      pageWidth / 2,
      90,
      "center"
    );
    doc.setFontSize(12);

    doc.line(20, 95, 190, 95);

    for (var i = 0; i < this.consultas.length; i++) {
      if (this.consultas[i] != null) {
        doc.text("Consulta N° " + (i + 1), 30, 110 + 75 * i);
        doc.text(
          "Fecha: " +
            new Date(this.consultas[i].fecha)
              .toLocaleDateString("es", options)
              .toString(),
          30,
          120 + 75 * i
        );
        doc.text("Motivo: " + this.consultas[i].motivo, 30, 130 + 75 * i);
        doc.text(
          "Pruebas a realizar: " + this.consultas[i].pruebas,
          30,
          140 + 75 * i
        );
        doc.text(
          "Observaciones: " + this.consultas[i].observaciones,
          30,
          150 + 75 * i
        );
        doc.text(
          "Diagnóstico: " + this.consultas[i].diagnostico,
          30,
          160 + 75 * i
        );
        doc.text(
          "Tratamiento: " + this.consultas[i].tratamiento,
          30,
          170 + 75 * i
        );
        //separacion
      }

      if (this.consultas.length > 2) {
        doc.addPage();
      }
    }
    //separacion

    doc.save(pacienteName + ".pdf");
  }

Я пытался найти что-то, что могло бы помочь мне, но я понял, jspdf без использования html2canvasили что-то подобное имеет минимальную документацию. Я не могу найти разрывы строк или разбиения страниц, поэтому я буквально в пустом месте прямо здесь.

...