如何在 Chrome 的 PDF 查看器中显示 javascript 文件对象及其名称?

How to display a javascript File object in Chrome's PDF viewer with its name?

我有一个 Blob object (generated with jsPDF) 格式的 PDF 文件,我想在 <iframe> 元素中显示它。

我可以通过这种方式轻松做到:

iframe.src = URL.createObjectURL( blob )

PDF 已正确呈现,但我得到一个深奥的字符串代替其名称(请参见下图 Chrome 的 PDF 查看器)。

所以我尝试将 Blob 转换为 File 对象,以便为其提供一个人类可读的名称。

var file = new File( [blob], 'a_name.pdf', { type: 'application/pdf' } )
iframe.src = URL.createObjectURL( file )

它适用于 Firefox:从页眉的 PDF 查看器保存文件时保留名称。 不幸的是,它在 Chrome 中被丢弃并在加载到 PDF 查看器之前被随机文件名替换。

您知道是否可以在 <iframe> 中显示 PDF 文件对象及其文件名吗?

您可以使用setProperties方法设置jsPDF生成的PDF的标题:

var doc = new jsPDF();
doc.setProperties({
    title: "This is my title"
});
...

该标题将在 Chrome 中显示在 PDF 查看器中。您可以在Live Demo页面进行测试。