I am migrating one of my old react-electron applications to electron-vite doc. This application has a pos printer feature which was implemented using react-to-print. The printing will be in portrait. When I migrated it to electron-vite printing functionality started to act weird. Print always comes in landscape. with very small font size.
old electron version
"electron": "^22.0.0",
new electron version
"electron": "^25.6.0",
I am not sure if it's a problem with the latest version of electron or electron-vite. So, I tried to update my printing options and printing functions as well.
print options in both:
const printOptions = {
  silent: true,
  preview: true,
  printBackground: true,
  color: true,
  margin: {
    marginType: 'printableArea'
  },
  landscape: false,
  pagesPerSheet: 1,
  collate: false,
  copies: 1
}
printer function(new):
ipcMain.on('toMain', async (event, url) => {
  console.log('print invoked', url)
  const win = new BrowserWindow({ show: false, width: 302, nodeIntegration: true })
  win.loadURL(url)
  win.webContents.on('did-finish-load', () => {
    win.webContents.print(printOptions, (success, failureReason) => {
      console.log('Print Initiated in Main...')
      if (!success) console.log('ERR', failureReason)
    })
  })
  return true
})
In the old app I only used show: false to create the browser window.
I tried to set the approximate print page size (80mm) to the window as width:302. As per the documentation I have set print landscape to false in printer options (even if it is the default).
I am aware of the electron-pos-printer library. but it can't be used I have lot of customization to make which is out of its scope
I tried to print a sample blog webpage with landscape: false which still gave a landscape output.
 
                        
It took me a while to figure out that this issue is not related to the migration to electron-vite. Actually, electrons above v22.x.x is having this issue.
What I did was to downgrade the electron dev dependency to
22.0.0This is only a temporary fix.