我从服务器向客户端浏览器(包括 PDF-Reader)提供 BLOB。
const file = new File([data], filename, { type: contentType });
const url = URL.createObjectURL(file);
const anchorElement = document.createElement("a");
document.body.appendChild(anchorElement);
anchorElement.href = url;
anchorElement.target = "_blank";
这非常有效,但是从阅读器下载时的文件名是指定的 GUID。
由于 Chromium 的最新补丁(或者可能是 idk 之前的一些补丁),这不再起作用。
文件在阅读器中正确显示,所有 PDF 属性都正确写入,但我无法再下载该文件。下载文件时,不再添加 .pdf 扩展名,然后下载失败并显示
无法下载 - 网络问题
如果我添加 .pdf 扩展名并且 Chromium 将该文件识别为 PDF,也会发生这种情况。 我可以毫无问题地通过
anchorElement.download
下载文件,并且可以毫无问题地从阅读器打印 PDF。 Blob 使用 objectURL 打开。只要显示 PDF,FF 和 Safari 就可以下载 PDF。另一方面,Chrome 需要 objectURL。如果您撤销它,用户将无法再通过浏览器 PDF 查看器中的下载按钮下载 PDF。