javascript 通过从指定的文件url获取文件,在打印窗口中打开文件

6tqwzwtp  于 2023-04-10  发布在  Java
关注(0)|答案(2)|浏览(232)

我试图在我的应用程序中使用jQuery实现打印选项。我将url of the file打印为<a> tagsrc属性。我所要做的就是从指定的URL中获取文件,并在打印窗口中打开它,用户可以从中打印它。我使用的代码如下:

<a id="print-5569" href="http://www.ibiblio.org/ebooks/Baum/Santa_Claus.pdf "><i class="fa fa-download"></i></a>

我尝试了很多在线解决方案,但没有一个对我有效。下面是我尝试的一个示例:https://www.sitepoint.com/load-pdf-iframe-call-print/
当我在网上搜索时,我找到了这个插件。但我不想为此添加一个插件。有什么解决方案吗?

7fhtutme

7fhtutme1#

从同一页直接打印文件

第一步:下载Blob文件

// Using fetch
const response = await fetch("http://www.ibiblio.org/ebooks/Baum/Santa_Claus.pdf");
const blob = await response.blob();
// Using axios
const response = await axios.get("http://www.ibiblio.org/ebooks/Baum/Santa_Claus.pdf",
  { responseType: "blob" }
);
const blob = response.data;

第二步:创建iframe并打开打印提示

const fileUrl = URL.createObjectURL(blob);

let iframe = document.createElement("iframe");
document.body.appendChild(iframe);

iframe.style.display = "none";
iframe.src = fileUrl;
iframe.onload = function () {
  iframe.focus();
  iframe.contentWindow.print();
};
63lcw9qa

63lcw9qa2#

如果PDF存储在相同的域中,您可以执行以下操作:

document.getElementById('print-5569').addEventListener('click', () => {
    var w = window.open('http://www.ibiblio.org/ebooks/Baum/Santa_Claus.pdf');
    w.print();
});

否则,你可以将这个方法与运行在同一个域上的一个简单的pdf代理类型的东西配对,就像google drive一样。(ex.https://drive.google.com/viewerng/viewer?url=http://www.ibiblio.org/ebooks/Baum/Santa_Claus.pdf

相关问题