相关疑难解决方法(0)

如何在iframe中设置base64 pdf的文件名?

我在base64中有一个PDF报告,我想显示嵌入在HTML页面中的文件.要做到这一点,我使用iFrame并工作,但问题是我无法设置PDF的名称,以便下载时它将以指定的名称保存.

我可以设置文件名吗?如果是,我该怎么办?

这是我的代码:

var iFrameBlock = $("<iframe>").attr({
      "src": base64file_encode,
      "width": "100%",
      "height": "100%",
      "frameborder": "0"
});

$("#previewPDF").html(iFrameBlock);
Run Code Online (Sandbox Code Playgroud)
结果: 预览PDF

当我尝试下载文件时,要保存的名称是"download.pdf" 保存对话框

我尝试了不同的方法,但也不工作:

  1. 添加属性download ="filename.pdf"

       
       var iFrameBlock = $("<iframe>").attr({
          "src": base64file_encode,
          "width": "100%",
          "height": "100%",
          "frameborder": "0",
          "download": "filename.pdf"
       });
       
       
    Run Code Online (Sandbox Code Playgroud)

  2. 我尝试更改iframe中的值,但我找到了正确的属性,Chrome拒绝了该操作.

       
       var iframe = $("iframe")[0];
       var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
       //here I suppose is the label of the filename
       $(iframeDocument).find("viewer-pdf-toolbar");
       
       
    Run Code Online (Sandbox Code Playgroud)

但是,我想防止使用任何其他库.

感谢您的时间

html iframe jquery

6
推荐指数
1
解决办法
3361
查看次数

为使用 Blob 的 &lt;embed&gt; 或 &lt;iframe&gt; 设置默认另存为名称

我正在使用 PDFKit(无节点)在浏览器中生成 PDF,并通过 src 属性将其显示为 iframe 或嵌入标签。生成的 blob URL 是某种 UUID。所以整个页面看起来像:

<embed src="blob:http://localhost/eeaabb..."/>
Run Code Online (Sandbox Code Playgroud)

PDF 看起来不错,但是当我在 Chrome 中单击下载链接时,默认文件名是 UUID。在 FireFox 中,它只是“document.pdf”。

如果这是服务器生成的 PDF,我将使用 Content-Disposition 和/或操作 URL,因此它的最后一部分是我想要的名称,但这对于客户端生成的对象似乎是不可能的。

我尝试过的事情:

  • 通过元数据设置 PDF 标题。这有效但不影响文件名。
  • 操作嵌入标签标题属性。好像什么都没做
  • 更改页面标题。不影响文件。
  • 尝试在数据 url 中附加一些内容。只是阻止显示 PDF。
  • 通过 POST 上传 PDF,然后通过我可以控制 URL 的页面下载它。可以工作,但生成客户端 PDF 只需要将其上传到服务器似乎很疯狂。

有没有办法解决这个问题,以便我可以控制默认/建议的文件名?

html javascript pdf node-pdfkit

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

html ×2

iframe ×1

javascript ×1

jquery ×1

node-pdfkit ×1

pdf ×1