Electron如何打印PDF文档?
需求是动态给定网络上的PDF资源,Electron实现预览打印和不预览直接打印,目前两种方法的实现基本相同区别只是显示不显示窗口及BrowserWindow的show属性不同
function print()
{
if(printWindow)
{
printWindow.webContents.print({silent: true, printBackground: true});
}
}
printWindow = new BrowserWindow({show: true,width: 800, height: 800,'webPreferences':{'plugins':true}});
//pdfUrl是网络PDF文件的地址
printWindow.loadURL(pdfUrl);
printWindow.setMenu(null);
printWindow.webContents.on('did-finish-load', () => {
// 设置定时器
setTimeout(print,3000);
});
遇到的问题
(1)打印需要在显示出PDF之后操作,否者打印出来的是空白,测试发现'did-finish-load'事件执行时PDF文档并没有加载完,所以我使用的是定时器但是网路资源PDF的大小和网速都会影响PDF加载的时间这里定时器使用固定值太小的话有时加载不全,太大的话用户体验不好,有没有什么方法可以知道PDF文档是否加载完成。
(2)PDF加载完成后,打印的时候必须点击下显示窗口的PDF的中部,否者打印出来文件会包含PDF的页眉页脚当窗口显示不全PDF的话分页和显示也会出现问题
下图是不点击PDF的中部,出现的错误打印结果,有没有大神帮看下如何解决上面的两问题
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
第一个问题可以先下截下来,再打印。
第二个问题我回去试试