Я использую 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или что-то подобное имеет минимальную документацию. Я не могу найти разрывы строк или разбиения страниц, поэтому я буквально в пустом месте прямо здесь.