如何解决木偶优化
我有一个网络应用程序,可以生成相当大的 PDF 文档,可能有 100 页甚至更多。
工作流程是这样的:
import { PDFDocument } from 'pdf-lib';
const pdfHtml = await nunjucks.render(...);
const thebrowser = await puppeteer.launch({
args: [
'--disable-dev-shm-usage','--no-first-run','--no-sandBox','--no-zygote','--single-process',],headless: true
});
const page = await thebrowser.newPage();
awaut page.setContent(`${pdfHtml}`,{ waitUntil: 'networkidle0' });
const frontPage: Buffer = await page.pdf({
... someOptions,pageRanges: '1'
});
const pdfpages: Buffer = await page.pdf({
... someOptions,pageRanges: '2-',footerTemplate: ...,});
const pdfDoc = await PDFDocument.create();
const coverDoc = await PDFDocument.load(frontPage);
const [coverPage] = await pdfDoc.copyPages(coverDoc,[0]);
pdfDoc.addPage(coverPage);
const mainDoc = await PDFDocument.load(reportPages);
for (let i = 0; i < mainDoc.getPageCount(); i++) {
const [aMainPage] = await pdfDoc.copyPages(mainDoc,[i]);
pdfDoc.addPage(aMainPage);
}
pdfBytes = Buffer.from(await pdfDoc.save());
// handle the bytes here
当 PDF 变得非常大时,此操作将花费相当长的时间并使用大量内存,从而使 API 停顿直至完成。我能做些什么来优化它?或者我可以使用其他工具来避免 API 停顿吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。