如何使用object标签为base64渲染pdf设置文件名?

时间:2013-09-15 20:23:16

标签: html html5 pdf base64

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

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

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

4 个答案:

答案 0 :(得分: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。 希望对您有所帮助。

答案 1 :(得分:0)

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

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

PS:仅当设置了href属性时才使用此属性。

答案 2 :(得分:0)

  

有什么方法可以控制这个名字吗?

     
    

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

  

见这里:https://stackoverflow.com/a/44061387/9913319

答案 3 :(得分:-1)

您可以使用以下代码语法

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

找到此here

希望它有所帮助。