| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // preload.js
- const { contextBridge, ipcRenderer } = require('electron');
- // 暴露安全的 API 给渲染进程
- contextBridge.exposeInMainWorld('electronAPI', {
- // 系统退出相关操作
- exitApp: () => ipcRenderer.invoke('exit-close'),
- shutdownSystem: () => ipcRenderer.invoke('exit-shutdown'),
-
- // 日志功能(保留原有功能)
- writeLog: (level, msg) => ipcRenderer.invoke('write-log', level, msg)
- });
- // 暴露打印API
- contextBridge.exposeInMainWorld('electronPrint', {
- /**
- * 打印HTML内容(传统方式)
- * @param {Object} options - 打印选项
- * @param {string} options.html - 要打印的HTML内容
- * @param {string} options.orientation - 打印方向 ('portrait' | 'landscape')
- * @param {string} options.paperSize - 纸张尺寸 ('A3' | 'A4')
- * @param {boolean} options.silent - 是否静默打印
- * @param {Object} options.margins - 页边距
- */
- print: (options) => ipcRenderer.invoke('print-film', options),
- /**
- * 打印HTML内容(使用File System API)
- * @param {Object} options - 打印选项
- * @param {string} options.html - 要打印的HTML内容
- * @param {Array} options.imageDataList - 图片数据数组
- * @param {string} options.orientation - 打印方向 ('portrait' | 'landscape')
- * @param {string} options.paperSize - 纸张尺寸 ('A3' | 'A4')
- * @param {boolean} options.silent - 是否静默打印
- * @param {Object} options.margins - 页边距
- */
- printToFile: (options) => ipcRenderer.invoke('print-film-to-file', options),
- /**
- * 导出为PDF
- * @param {Object} options - 导出选项
- */
- printToPDF: (options) => ipcRenderer.invoke('print-to-pdf', options),
- });
|