该计划是创建一个PDF文件(仅由一个单一的页面组成),然后用户选择是否下载为PDF或图像。我已经编写了生成PDF的代码,目前运行良好。现在的问题是如何将其转换为图像。是否可以在不安装Ghostscript等文件的情况下转换文件?
我是一个完整的noob,建议是非常感谢。(建议使用哪些库也会有所帮助)
PDF生成代码
import PDFDocument from "pdfkit";
static async medicalPrescription(req, res) {
// Some code for generating the PDF contents...
filename = encodeURIComponent(filename) + '.pdf'
res.setHeader('Content-disposition', 'attachment; filename="' + filename + '"')
res.setHeader('Content-type', 'application/pdf')
const content = req.body.content
doc.y = 300
doc.text(content, 50, 50)
doc.pipe(res)
doc.end()
}
然后客户端接收生成的文件并在另一个选项卡中打开它。
发送请求并打开响应的React文件
const handleSubmit = async (e) => {
// Some code for sending the pdf content from the user
fetch("http://localhost:5050/generate-rx", {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: parsed
})
.then(async res => {
if (res.status === 200) {
const blob = await res.blob();
const file = new Blob(
[blob],
{type: 'application/pdf'}
);
const fileURL = URL.createObjectURL(file);
window.open(fileURL);
}
})
}
2条答案
按热度按时间8wtpewkr1#
可以使用pdf2pic。它可以将PDF转换为图像。
2ekbmq322#
是的,可以将
pdf
转换为image
,而无需安装Ghostscript之类的东西,pdf.js
+canvas
可以做到这一点。当您的主机/环境不允许安装额外的
apt
软件包(如Ghostscript)时,这是一个很好的选择。这里是一个链接到
pdf.js
的node-example用法转换pdf到pngpdfjs-dist@2.16.105
和最新的canvas@2.11.2
时可以正常工作。pdf.js
,你需要使用遗留构建:require("pdfjs-dist/legacy/build/pdf.js")