Javascript printToPDF以选项卡大小而不是实际窗口大小进行渲染

Javascript printToPDF以选项卡大小而不是实际窗口大小进行渲染,javascript,twitter-bootstrap,electron,Javascript,Twitter Bootstrap,Electron,我的electron应用程序有一个打印工具,可以直接打印我的窗口内容。它使用引导进行布局。electron窗口按预期呈现,但当我使用printToPDF打印内容时,生成的PDF看起来是一个选项卡大小的屏幕截图。为了更好地理解,请附上图片 代码段: 另外,我还尝试了window.print,它产生了相同的问题 我需要按屏幕在窗口中的显示打印屏幕 电子窗口的预期屏幕截图: 生成的PDF的实际屏幕截图: 通过访问整个窗口来打印它对我来说很有效 var childWindow = getWindo

我的electron应用程序有一个打印工具,可以直接打印我的窗口内容。它使用引导进行布局。electron窗口按预期呈现,但当我使用printToPDF打印内容时,生成的PDF看起来是一个选项卡大小的屏幕截图。为了更好地理解,请附上图片

代码段:

另外,我还尝试了window.print,它产生了相同的问题

我需要按屏幕在窗口中的显示打印屏幕

电子窗口的预期屏幕截图:

生成的PDF的实际屏幕截图:

通过访问整个窗口来打印它对我来说很有效

  var childWindow = getWindow("My-Window-Name");

  childWindow.webContents.printToPDF({
     landscape: true
     }, function(err, data) {
     var dist = "";
     var dir = "";
     if (process.platform !== 'darwin') {
     dir = "C:\\store\\" + serialNumber;

     if (!fs.existsSync(dir)){
       fs.mkdirSync(dir);
     }
       dist = dir +  '\\' + serialNumber + '.pdf'
     } else {
       dir = __dirname + '/' + serialNumber;

     if (!fs.existsSync(dir)){
       fs.mkdirSync(dir);
     }
       dist = dir +  '/' + serialNumber + '.pdf'
     }

     fs.writeFile(dist, data, function(err) {
       if(err) console.log('genearte pdf error', err)
     })
     })

// code to get reference to window
   function getWindow(windowName) {
     var windowArray = BrowserWindow.getAllWindows();
     console.log(windowArray[0].getTitle());
     for (var i = 0; i < windowArray.length; i++) {
       if (windowArray[i].getTitle() == windowName) {
         return windowArray[i];
       }
     }
   return null;
   }
  var childWindow = getWindow("My-Window-Name");

  childWindow.webContents.printToPDF({
     landscape: true
     }, function(err, data) {
     var dist = "";
     var dir = "";
     if (process.platform !== 'darwin') {
     dir = "C:\\store\\" + serialNumber;

     if (!fs.existsSync(dir)){
       fs.mkdirSync(dir);
     }
       dist = dir +  '\\' + serialNumber + '.pdf'
     } else {
       dir = __dirname + '/' + serialNumber;

     if (!fs.existsSync(dir)){
       fs.mkdirSync(dir);
     }
       dist = dir +  '/' + serialNumber + '.pdf'
     }

     fs.writeFile(dist, data, function(err) {
       if(err) console.log('genearte pdf error', err)
     })
     })

// code to get reference to window
   function getWindow(windowName) {
     var windowArray = BrowserWindow.getAllWindows();
     console.log(windowArray[0].getTitle());
     for (var i = 0; i < windowArray.length; i++) {
       if (windowArray[i].getTitle() == windowName) {
         return windowArray[i];
       }
     }
   return null;
   }