如何制作图像的pdf
How to make a pdf of images
我有一个使用 jsPDF 从图像制作 PDF 的功能。
这是唯一需要做的事情(将图像列表添加到 pdf)
这是我的代码:
const { allImgs } = useAppContext()
const doc = new jsPDF();
const generatePDF = () => {
for (let i = 0; i < allImgs.length; i++) {
doc.addImage(allImgs[i], 'PNG', 0, 0, 210, 297)
doc.addPage()
}
}
useEffect(() => {
generatePDF();
}, [])
// ...
<button onClick={() => { doc.save('ex.pdf') }}> Download PDF</button>
//...
每个 PDF 页面需要一张且只有一张图像形成列表。
但由于某种原因,只有第一张图片被复制到所有 PDF 页面。生成的 PDF 包含正确的页数 (+1),但所有页面仅包含第一张图片。
我已验证 allImgs
中的每个项目都是不同的。
我该如何解决这个问题?这是图书馆的错误吗?还有其他我可以使用的库吗?
顺便说一句,我正在使用 NextJS (ReactJS)
对于阅读 jsPDF 或遇到类似问题的任何人,我的逻辑是正确的,这就是您需要将图像添加到 pdf 的方式。 for
循环也可以实现为
let len = allImgs.length;
for (let i = 0; i < len; i++) {
doc.addImage(allImgs[i], 'PNG', 0, 0, 210, 297)
if(i !== len) doc.addPage()
}
这确保不会在文档末尾添加空白页。
我的问题是我用来添加到 pdf 的 base64
图像字符串包含 'dataURL... base64, ...'
等数据。我只需要删除前 22 个字符。喜欢,
const element = allPages[i].substring(22);
doc.addImage(element, 'PNG', 0, 0, 210, 297)
一切正常。但我仍然不明白第一张图片是如何渲染的(也渲染到 PDF 的所有页面!!)。
感谢@CHess 的评论!
我有一个使用 jsPDF 从图像制作 PDF 的功能。
这是唯一需要做的事情(将图像列表添加到 pdf)
这是我的代码:
const { allImgs } = useAppContext()
const doc = new jsPDF();
const generatePDF = () => {
for (let i = 0; i < allImgs.length; i++) {
doc.addImage(allImgs[i], 'PNG', 0, 0, 210, 297)
doc.addPage()
}
}
useEffect(() => {
generatePDF();
}, [])
// ...
<button onClick={() => { doc.save('ex.pdf') }}> Download PDF</button>
//...
每个 PDF 页面需要一张且只有一张图像形成列表。
但由于某种原因,只有第一张图片被复制到所有 PDF 页面。生成的 PDF 包含正确的页数 (+1),但所有页面仅包含第一张图片。
我已验证 allImgs
中的每个项目都是不同的。
我该如何解决这个问题?这是图书馆的错误吗?还有其他我可以使用的库吗?
顺便说一句,我正在使用 NextJS (ReactJS)
对于阅读 jsPDF 或遇到类似问题的任何人,我的逻辑是正确的,这就是您需要将图像添加到 pdf 的方式。 for
循环也可以实现为
let len = allImgs.length;
for (let i = 0; i < len; i++) {
doc.addImage(allImgs[i], 'PNG', 0, 0, 210, 297)
if(i !== len) doc.addPage()
}
这确保不会在文档末尾添加空白页。
我的问题是我用来添加到 pdf 的 base64
图像字符串包含 'dataURL... base64, ...'
等数据。我只需要删除前 22 个字符。喜欢,
const element = allPages[i].substring(22);
doc.addImage(element, 'PNG', 0, 0, 210, 297)
一切正常。但我仍然不明白第一张图片是如何渲染的(也渲染到 PDF 的所有页面!!)。
感谢@CHess 的评论!