使用JavaScript静默打印PDF文件

6

我希望通过点击按钮来触发直接打印PDF文件,但不需要打开或查看它。

我从fetch API中获取了PDF二进制大对象文件。

我尝试了很多示例,但不确定如何实现。

尝试过的一些示例:

// In my case, I had only blobData from PDF, but you can ignore this and set fileURL directly if it is not yours.
const file = new Blob([blobData], { type: 'application/pdf' });
const fileURL = window.URL.createObjectURL(file);

// As the URL is dynamic, we must set src here, but if it's not, just leave it direct on the HTML. 
// Also, be careful with React literals. If you do this in a <iframe> defined in JSX, it won't work 
// as React will keep src property undefined.
window.frames["my-frame"].src = fileURL;

// Then print:
window.frames["my-frame"].print();
<iframe name="my-frame" id="my-frame" title="my-frame" style="display: none"></iframe>

还尝试了库Print.js:http://printjs.crabbly.com/

是否有一种方法可以在不向用户可视地打开PDF的情况下打印它?我们应该仅支持Chrome浏览器。

有人可以提供在React、Redux应用程序中如何实现的示例吗?


检查此链接是否有用 - https://dev59.com/3F0a5IYBdhLWcg3wmZvC。它还提供了代码文件的Github链接,请也检查它们。 - vbRocks
谢谢,我会尝试的。 - user1990
3
为什么要求不显示PDF文件,这个要求有些奇怪?作为用户,我总是想看看我将要打印的内容,你不会让我打印一本有500页彩色漫画吧。打印墨粉并不便宜。 - Kaiido
@Kaiido 如果有一个文件列表需要打印,而你不想让用户确认每个打印弹窗。 - CDT
@CDT 然后将其合并为一个多页 PDF。 - Kaiido
显示剩余3条评论
1个回答

1

尝试使用 Print.js,同时这也是一个 npm 包

安装 npm 包。

npm install print-js --save

请添加以下代码。
import print from "print-js";

const fileURL = "someurl.com/document.pdf"; 

const handlePrint = (e) => {

    e.preventDefault();
    print(fileURL);

};

类似的问题在这里

请问您需要翻译其他内容吗?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接