عدل هذا الجزء من الكود في ملف main.js لديك وسيعمل معك
ipcMain.on('open-recip',function(e,data){
var opti = {
silent: false,
printBackground: true,
color: false,
margin: {
marginType: 'printableArea'
},
landscape: false,
pagesPerSheet: 1,
collate: false,
copies: 1,
header: 'Header of the Page',
footer: 'Footer of the Page'
}
console.log
let win = new BrowserWindow({
show: false,
webPreferences: {
nodeIntegration: true,
contextIsolation: false // هنا تكمن المشكلة تابع الشرح ادناه
}
});
win.loadFile('recipe.html');
win.webContents.on('did-finish-load', () => {
win.webContents.send('dataRecipe',data);
win.webContents.print({silent:true},function (success, failureReason) {
if (!success) console.log(failureReason);
console.log('Print Initiated');
});
});
/* win.loadFile('recipe.html');
win.webContents.on('did-finish-load', ()=>{
console.log(data);
});*/
}
);
المشكلة أنك لم تفعل الوصول إلى دوال electron داخل ملف recipe.html المتربط به ملف recipe.js الذي يحتوي بدوره في أول سطر منه على إستيراد ipcRenderer , كل هذا يتم بتفعيلك لهذا الخيار contextIsolation: false في قطعة الكود أعلاه.