【问题标题】:Set default filename when downloading a PDF open with Chrome PDF viewer下载使用 Chrome PDF 查看器打开的 PDF 时设置默认文件名
【发布时间】:2018-07-05 23:48:56
【问题描述】:

我的 Angular 应用有一个可以呈现 PDF 的 iframe:

<iframe ng-src="{{PCtrl.docSrc}}" type="application/pdf" ...></iframe>

docSrc 生成为 BASE64 编码字符串,类似于:

"data:application/pdf;base64,JVBERi0xLjMKMyA..."

Chrome 可以很好地呈现嵌入的 PDF。点击下载即可下载 PDF,用户将看到“另存为”对话框。 Chrome PDF 查看器给出的默认文件名是“download.pdf”,如何更改?

【问题讨论】:

  • 已经asked here。没有真正的解决方案,除了运行您自己的 pdf 查看器。
  • 感谢 Kaido/Michael,但这些答案中没有任何内容可以帮助我重命名传递给 Google Pdf 查看器的文件,因此下载时可以使用自定义名称保存。

标签: html google-chrome pdf iframe jspdf


【解决方案1】:

window.onload = () => {
  let blob = new Blob(["file"], {
    type: "text/plain"
  });
  let url = URL.createObjectURL(blob);
  let a = document.createElement("a");
  a.href = url;
  a.download = "file.txt";
  document.body.appendChild(a);
  console.log(url);
  a.click();
}

也许这会对你有所帮助

【讨论】:

  • 谢谢塞尔瓦。您将文件附加到支持 download 属性的&lt;a&gt; 元素。不幸的是,iframe 不支持它。
【解决方案2】:

Silvia 在 #28310366 中也提供了类似的建议,其中还包括对 https://github.com/alferov/angular-file-saver 的引用,该引用本身利用了 https://github.com/eligrey/FileSaver.js/

【讨论】:

  • 谢谢彼得。该文件可以以多种方式命名和保存(即参见下面的 Selva 响应),但这不是这里的问题。问题是让 Google Pdf 查看器使用预定义的文件名称,而不是默认的“download.pdf”。
猜你喜欢
  • 2018-03-05
  • 2012-09-12
  • 2017-10-27
  • 1970-01-01
  • 1970-01-01
  • 2019-10-08
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
相关资源
最近更新 更多