【问题标题】:How to set filename for base64 rendered pdf using object tag?如何使用对象标签为 base64 呈现的 pdf 设置文件名?
【发布时间】:2013-09-19 23:02:30
【问题描述】:

我正在使用以下代码来呈现从 web 服务返回的 PDF 作为 base64 字符串。

<html>
  <object data="data:application/pdf;base64,{!pdfStampingResponse.pdfBase64}" type="application/pdf" width="100%" class="internal">
    <param name="view" value="fitH" />            
  </object>
</html>

这很好用,但我想在用户尝试保存文件时设置下载文件名。不知何故,我无法找到可行的解决方案。知道怎么做吗?

【问题讨论】:

  • 我知道这已经很老了,但是,以防万一 Avidev9 看到它,你有没有找到解决这个问题的方法?或者其他人可以帮忙吗?我目前面临同样的问题。下面 Stu 的解决方案对我不起作用。谢谢。
  • 您需要如本答案所示设置 Content Disposition 标头以设置文件下载名称。 stackoverflow.com/a/1741508/728610
  • 有谁知道我嵌入pdf时如何在标题上设置标题?

标签: html pdf base64


【解决方案1】:

请试试这个

const FILE_NAME = 'myfile.pdf';
const file_header = ';headers=filename';

fetch('https:your-url/myfile.pdf?dl=0').then(r => r.blob())
.then(blob=>{
  const f = new FileReader();
  f.onload = () => myPdfViewer.src = f.result.replace(';', file_header + encodeURIComponent(FILE_NAME) + ';');
  f.readAsDataURL(blob);
  });

然后将 id myPdfViewer 插入 iframe。 希望能帮到你。

【讨论】:

    【解决方案2】:

    有什么办法可以让我控制名称吗?

    没有。您无法控制存储在用户本地文件系统中的文件的名称。

    请看这里:https://stackoverflow.com/a/44061387/9913319

    【讨论】:

      【解决方案3】:

      在锚标签中使用download="yourfilename"

      下载属性指定当用户点击超链接时将下载目标。

      PS:这个属性只有在设置了href属性的情况下才会用到。

      【讨论】:

        【解决方案4】:

        您可以使用以下代码语法

        <object data="data/test.pdf" type="application/pdf" width="300" height="200">
          alt : <a href="data/test.pdf">test.pdf</a>
        </object>
        

        找到这个here

        希望对你有帮助。

        【讨论】:

          猜你喜欢
          • 2017-03-23
          • 1970-01-01
          • 1970-01-01
          • 2012-08-19
          • 2019-01-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-09
          相关资源
          最近更新 更多