Slide 30
Slide 30 text
༌ग़PNGᢛPDF
‣ https://github.com/atom/electron/blob/master/docs/api/browser-window.md
‣ https://github.com/atom/electron/blob/master/docs/api/remote.md
main.js
ipc.on("export-‐pdf",
function(evt,
args)
{
var
pathname
=
args.pathname
||
"/tmp/output.pdf";
mainWindow.printToPDF({
//
ref.
electron/atom/browser/api/lib/web-‐contents.coffee
},
function(error,
pdfBuffer)
{
if
(error)
throw
error;
require("fs").writeFile(pathname,
pdfBuffer);
}
);
});
‣ Electron࠷৽ᬶग़൛ຊ v0.28.2
࠽ซprintToPDF()
‣ 㣿ᅷೳՄࢹეҬɼधࣗߦҎ㣥
‣ ሱԙ(6*ૢ࡞ɼೳࡏओߦఔ main process
ʀ
ࡏࢉ៸ߦఔ renderer process
ՄಁաRPC༻
app.js
var
remote
=
require("remote"),
currentWindow
=
remote.getCurrentWindow();
currentWindow.capturePage({/*x,y,w,h*/},
function(buf)
{
//
serialize
remote
buffer
using
base64
data
url
var
dataUrl
=
buf.toDataUrl();
var
buffer
=
new
Buffer(
dataUrl.replace(/^data:image\/\w+;base64,/,
""),
"base64");
require("fs").writeFile("/tmp/output.png",
buffer);
});