如果内容不适合页面,jspdf,则内容将被削减。如何在另一个页面中显示内容?



我在angular中使用jspdf。我正在我的.ts上生成pdf(我没有使用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或类似的东西,文档很少。我找不到任何换行符或分页符,所以我在这里简直是一片空白。

我想已经很晚了,但我用之类的东西解决了这个问题

const doc = new jsPDF(jsPDFConfig);
const x = 20;
let y = 40;

像一样在每一行上添加到(Y(

doc.setFontSize(10);
doc.setFontStyle('bold');
doc.text(this.clinicName, x, y);
y += 12;

稍后对此进行检查,并添加一个重新启动(Y(的页面

if (y + 20 > (PAGE HEIGHT)) {
doc.addPage();
y = 40;
}

在我的情况下,页面高度为841.89;a4";总体安排但你可以试着从医生那里得到。

相关内容

最新更新