jspdf输出时有没有办法设置文件名()

问题描述 投票:0回答:2

我的网站绘制了柱形图。我有一个按钮可以将其保存为 PDF 文件,然后在保存之前显示它。

现在的工作方式是这样的。

  1. google.visualization 绘制图表。
  2. html2canvas 截取图表的屏幕截图。
  3. jsPDF 将屏幕截图插入 PDF 文件中并将其显示给用户。

问题出在 PDF 文件的名称上。它类似于 5d78c1eb-0829-4e7e-8ffc-71cf1f102f56.pdf,网址是 blob:http://example.com/5d78c1eb-0829-4e7e-8ffc-71cf1f102f56 当用户看到 PDF 并单击“保存”时,他会收到这个可怕的文件名。

现在我这样显示 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 并将其显示给具有我想要的名称的用户?

pdf output filenames tcpdf jspdf
2个回答
1
投票

目前答案是否定的。您可以直接下载,如本问题已接受的答案中所述:使用文件名下载

但是您创建了一个 objectUrl,因此文件名始终是 url。 也许您可以为此创建一个浏览器扩展...但我还没有时间尝试。此外,您不能指望您的访问者安装了该扩展程序。


0
投票

这对我有用

doc.setProperties({
        title: "MyTitle.pdf"
    }).html(element, {
        callback: function (doc) {
            window.open(doc.output('bloburl'), "_blank");
        },
});
© www.soinside.com 2019 - 2024. All rights reserved.