我的网站绘制了柱形图。我有一个按钮可以将其保存为 PDF 文件,然后在保存之前显示它。
现在的工作方式是这样的。
问题出在 PDF 文件的名称上。它类似于 5d78c1eb-0829-4e7e-8ffc-71cf1f102f56.pdf,网址是 blob:http://example.com/5d78c1eb-0829-4e7e-8ffc-71cf1f102f56 当用户看到 PDF 并单击“保存”时,他会收到这个可怕的文件名。
window.open(doc.output('bloburl'), '_blank');
如果我将此行更改为以下内容,我可以设置所需的文件名:
doc.save('sample-file.pdf');
但在这种情况下,文件只是下载,但我需要先显示它。
有没有办法显示 PDF 并给它一个合适的名称?我试过这个:
window.open(doc.output('bloburl', {filename: 'myFileName.pdf'}), '_blank');
但这并没有帮助。
我看到的另一种方法不是显示 jsPDF 中的 PDF,而是将图像发送到服务器并使用 TCPDF 在那里制作 PDF 文件。用 TCPDF 制作的文件可以有一个我给它的名称,但我认为将图像发送来回是愚蠢的。
所以问题是如何制作 PDF 并将其显示给具有我想要的名称的用户?
目前答案是否定的。您可以直接下载,如本问题已接受的答案中所述:使用文件名下载
但是您创建了一个 objectUrl,因此文件名始终是 url。 也许您可以为此创建一个浏览器扩展...但我还没有时间尝试。此外,您不能指望您的访问者安装了该扩展程序。
这对我有用
doc.setProperties({
title: "MyTitle.pdf"
}).html(element, {
callback: function (doc) {
window.open(doc.output('bloburl'), "_blank");
},
});