主要使用技术为
nodejs
的
fs
模块,以及
electron
的
dialog
使用
dialog.showSaveDialog
获取导出文件的路径,然后调用
fs.writeFileSync
同步写入文件即可。
var filters = [
name: filename,
extensions: [type]
var filePath = dialog.showSaveDialog({
filters,
defaultPath: filename,
title: '导出',
buttonLabel: '导出'
导出md文件
这个比较简单,直接将md写入文件即可:
fs.writeFileSync(filePath, content, 'utf8')
导出Html文件
首先需要通过editor
实例获取html
源码,方法如下:
let html = this.$refs.editor.d_render
然后通过一个html
页包装后写入文件即可:
function getHtml(title, body) {
return `
<!DOCTYPE html>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="CEditor">
<title>${title}</title>
<link rel="stylesheet" href="https://cyyjs.github.io/static/md.css">
</head>
<body class="markdown-body code-github">
<h1>${title}</h1>
${body}
</body>
</html>`
可以自定义一些样式等。
导出PDF文件
electron
的webContents
提供了一个printToPDF
方法,我们可以直接使用这个方法来导出PDF。
逻辑是先将内容包装成html后加载到webContents
主进程中,然后调用打印方法。
代码如下:
content = getHtml(title, html)
let tmpPath = path.join(userDataPath, 'tmp.html')
fs.writeFileSync(tmpPath, content, 'utf8')
let win = new BrowserWindow({
width: 768,
height: 1024,
show: false
win.loadURL('file://' + tmpPath)
let contents = win.webContents
contents.on('did-finish-load', () => {
contents.printToPDF({}, (error, data) => {
if (error) throw error
fs.writeFileSync(filePath, data)
win.close()
fs.unlinkSync(tmpPath)
使用dialog.showOpenDialog
方法,获取要导入的文件路径。
let path = dialog.showOpenDialog({
filters: [
name: 'MD文件',
extensions: ['md']
properties: ['openFile'],
message: '选择要导入的Mackdown文件',
buttonLabel: '导入'
然后调用fs.readFileSync
读取文件即可。
主要功能:1、导入md文件2、导出md文件3、导出html文件4、导出pdf文件主要使用技术为nodejs的fs模块,以及electron的dialog导出逻辑使用dialog.showSaveDialog获取导出文件的路径,然后调用fs.writeFileSync同步写入文件即可。var filters = [ { name: filename, ex...
做本地应用程序的时候经常需要用到nodeJS来保存数据
这时候就涉及到了主进程和渲染进程的数据传递了
Electron读写本地文件其实和nodeJs差不多,只是中间加了一层API
废话不多说直接上内容
读取文件
首先按需导入ipcMain模块
注册事件(注意:ipcMain里on注册事件的名字可以自定义),调用时跟渲染进程的调用的名称一样即可
渲染进程向...
红牛工作室:
windows 7文件误删shift+delete后找回
m0_69350547:
SD卡误删文件怎么恢复
yufengov:
navicat上如何导出视图,函数等
qq_44741558:
navicat上如何导出视图,函数等
zhanyue206296: