【问题标题】:printToPDF renders in tab size instead of actual window sizeprintToPDF 以标签大小而不是实际窗口大小呈现
【发布时间】:2017-11-18 04:02:01
【问题描述】:

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

代码片段:

win.webContents.printToPDF({pageSize:"A4",printBackground: true}, (error, data) => {

    if (error) throw error

    fs.writeFile('print.pdf', data, (error) => {

        if (error) throw error

        console.log('Write PDF successfully.');
    });
});

另外,我也尝试了window.print(),它产生了同样的问题。

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

预期(电子窗口截图):

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

【问题讨论】:

    标签: javascript twitter-bootstrap electron


    【解决方案1】:

    通过访问它来打印整个窗口对我有用。

      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;
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-08
      • 1970-01-01
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多