Skip to main content

读取粘贴版

相关模块clipboard

const { clipboard } = require('electron')
// or
import clipboard from 'electron'

相关API

// 读取文本
clipboard.readText()

// html
clipboard.readHTML()

// 图片
clipboard.readImage()
  • 读取图片
const img = clipboard.readImage()
const imgUrl = img.toDataURL()
cont imgDom = document.createElement('img')

imgDom.src = imgUrl

readImage

clipboard.readImage返回一个nativeImage的实例,此实例有toDataURL方法,该方法返回图像的base64编码的数据字符串

开发者可以直接把此字符串设置到图片标签的src属性上,即可在网页中显示图片。

如果你通过截图工具已经截取了图像数据到剪切板,那么执行上面代码,你就会在窗口中看到你截取的图片。

但如果你是在系统文件夹里复制了一个图片文件,执行上面代码,你会看到一个加载失败的图片,因为此时剪切板里是一个文件而不是真正的图像数据(你可以通过nativeImage实例的isEmpty方法来判断nativeImage实例是否包含图像数据)。

如果你希望得到这个文件的路径,可以使用如下方法(这是一个Electron未公开的技术):

// Win操作系统下
let filePath = clipboard.readBuffer('FileNameW').toString('ucs2')
filePath = filePath.replace(RegExp(String.fromCharCode(0), 'g'), '');

//Mac操作系统下
var filePath = clipboard.read('public.file-url').replace('file://', '');

第三方模块

clipboard-files