如何在CurrentWindow中捕获整个WebContent

时间:2017-02-04 03:24:05

标签: javascript electron

我在窗口中有一个非常长的页面(需要滚动查看全部),当我尝试使用下面的代码捕获整个窗口时,我得到一个压缩图像,而不是在CurrentWindow中的完整WebContent屏幕截图。

https://github.com/electron/electron/blob/master/docs/api/browser-window.md#wincapturepagerect-callback

        const remote = require('electron').remote;
        const win = remote.getCurrentWindow();
        const win_size = win.getSize();
        const win_height = win_size[0];
        const win_width = win_size[1];

        win.capturePage({
                x: 0,
                y: 0,
                width: win_width,
                height: win_height
            },
            (img) => {
                remote.require('fs')
                    .writeFile(TEMP_URL, img.toPng());
            });

我也尝试过以下代码但结果是一样的,

        const remote = require('electron').remote;
        const webContents = remote.getCurrentWebContents();

        webContents.capturePage({
            x: 0,
            y: 0,
            width: 1000,
            height: 2000
        }, (img) => {
            remote.require('fs')
                .writeFile(TEMP_URL, img.toPng());
        });

传入capturePage方法的第一个对象应该是绑定的,但结果是输出图像的大小。

我已经检查了win_size,它是CurrentWindow中WebContent的正确大小。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

win.getSize()

返回一个[width, height]的数组。您将win_width变量分配给窗口的高度,将win_height分配给窗口的宽度。如果您更改这些值,则可能会解决您的问题。

 const win_height = win_size[1];
 const win_width = win_size[0];