首页
学习
活动
专区
圈层
工具
发布

Electron加载网页中打开的PDF

正文 Electron2.x之后的版本都已经不支持PDF加载显示了,所以推荐网页中使用pdf.js来加载PDF 允许加载域名不一样的资源 Nginx中允许资源跨域访问 add_header Access-Control-Allow-Origin...*; add_header Access-Control-Allow-Credentials true; viewer.js中注释掉下面的这行 throw new Error("file origin...does not match viewer's"); 禁用工具条菜单 viewer.js中webViewerInitialized()方法最后添加 appConfig.toolbar.presentationModeButton.setAttribute...file=https://www.psvmc.cn/123.pdf 修改后的资源下载地址 链接:https://pan.baidu.com/s/1cxhxFoumrxlEL1fk42x6IA 提取码:psvm...下载后直接放到项目的public目录下即可使用 项目中原来的地址修改为如下: /pdf_show/web/viewer.html?

2.7K30

客户端开发(Electron)系统级API使用

Dear,大家好,我是“前端小鑫同学”,长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。...嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发...调用系统API实现文件保存或读取前的选择功能: 如上图所示的功能,我们在使用电脑时就经常会遇到,在Electron中我们可以通过调用dialog.showOpenDialogSync函数同步打开下面的对话框...Electron给我们提供关于对话框的API如下: API名称 主要参数 showOpenDialogSync [browserWindow, ]options showOpenDialog...菜单栏菜单: Electron提供的默认菜单栏中的菜单都是一些为了演示和开发使用的,在实际的应用中我们还是需要进行配置来实现我们自己的功能。

3.1K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MFC中属性表单和向导对话框的使用

    每次在使用MFC创建一个框架时,需要一步步选择自己的程序的外观,基本功能等选项,最后MFC会生成一个基本的程序框架,这个就是向导对话框;而属性表单则是另外一种对话框,表单上有多个属性页,每点击某一页,会显示该页的内容...,最好的例子是Visual C++6.0中的Option对话框; 属性表单的创建: 属性表单上由许多属性页组成,每个属性页都可以在可视化的编辑环境中编辑,需要添加的资源名称是对话框下面的IDD_PROPPAGE_LARGE...; //在构造函数中添加属性页 AddPage(&m_Prop1); AddPage(&m_Prop2); AddPage(&m_Prop3); 至于它的使用则是于普通的对话框类似...向导的创建与使用: 向导所使用的类与属性表单相同,这里就不在说明,为了创建向导,需要在调用DoModal或者Create之前调用SetWizardMode()函数,这样之前的属性表单就变为了向导程序...中的一个或者几个,分别用来设置该页上的一个“上一步”按钮、“下一步”按钮、“完成”按钮、和一个禁用的“完成”按钮,一般来说在属性页中的OnSetActive函数中调用,当属性页被选中,从而被激活时程序会响应

    2.1K10

    浅谈与使用js中的原型

    浅谈与使用js中的原型# 1 什么是原型# “ 每个函数都会创建一个 prototype 属性,这个属性是一个对象,包含应该由特定引用类型的实例 共享的属性和方法。...2 原型的使用# 首先我们使用设计模式中的工厂模式来实现一个Person类,可以通过new这个Person的函数来创建一个与之具有相同属性的实例,也就省的我们再次创建Person函数了。...person2 = new Person('Greg', 27, 'Doctor') person1.sayName() // Nicholas person2.sayName() // Greg 从上面代码中可以看到...有,那就是用原型,请看下面这份代码: // 工厂模式实现 方法2 使用原型属性 function Person(name, age, job) { this.name = name this.age...3 小结# 本文仅是对于原型有个简单的认识也使用,原型在js中是一个比较重要的模块,还有__proto__ 、 原型链 这些概念没有讲到,如果感兴趣,可以再通过书籍及视频来交叉理解。

    1.2K30

    js中setTimeout和clearTimeout的使用

    大家好,又见面了,我是你们的朋友全栈君。 一、概念 1、js中可以通过setTimeout函数设置定时器,让指定的代码在指定的时间运动....如果我们希望在setTimeout之行前终止其运行就可以使用clearTimeout()。...2、clearTimeout()用于重置js定时器,如果你希望阻止setTimeout的运行,就可以使用clearTimeout方法。...二、使用场景 1、写计时器 2、需要让程序隔一段时间处理什么事情,如3秒后自动关闭弹出框等 3、事件延迟,满足业务需求,如鼠标从主菜单moveout的时候,判断鼠标是否moveover副菜单,再隐藏副菜单...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    3.2K30

    我的第一个Electron应用

    主进程 Electron应用需要一个入口文件,用来控制主进程,需要在项目的package.json文件中的main字段指定: { "main": "background.js" } 主进程中存在一些基本代码...可以在预加载脚本中通过contextBridge.exposeInMainWorld方法在页面的window对象上挂载属性和方法,这样页面就能使用了,具体的使用后面会介绍。...我们可以在预加载脚本中给页面注入一些全局方法,然后在方法中使用进程间通信 (IPC)通知主进程,拿前面的控制器为例: // preload.js const { contextBridge, ipcRenderer...对象的send方法发送信息,同样需要在预加载脚本中中转: // preload.js contextBridge.exposeInMainWorld('electronAPI', { onRefreshRecentFileList...,所以会显示丑丑的默认控件,通常打开这种非客户端页面的url都是使用系统默认的浏览器打开,实现上,直接使用open库即可。

    1.6K60

    浏览器中的机器学习:使用预训练模型

    在上一篇文章《浏览器中的手写数字识别》中,讲到在浏览器中训练出一个卷积神经网络模型,用来识别手写数字。值得注意的是,这个训练过程是在浏览器中完成的,使用的是客户端的资源。...在本文,我们将探索如何在TensorFlow.js中加载预训练的机器学习模型,完成图片分类任务。...有两种使用MobileNets模型的方案: 直接调用MobileNets模型的JS封装库 自己编写代码加载json格式的MobileNets模型 直接调用MobileNets模型的JS封装库 JS...这个示例写的比较简单,从浏览器控制台输出log,显示结果,在chrome浏览器中可以打开开发者工具查看: 加载json格式的MobileNets模型 使用封装好的JS对象确实方便,但使用自己训练的模型时...在JS世界,JSON是使用得非常普遍的数据交换格式。TensorFlow.js也采用JSON作为模型格式,也提供了工具进行转换。

    1.4K20
    领券