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