![JAR search and dependency download from the Maven repository](/logo.png)
os.ui-reports.0.2.3.source-code.htmltopdf.js Maven / Gradle / Ivy
var system = require('system');
var webpage = require('webpage');
// Usage: htmltopdf.js url pdf options
var args = system.args;
var url = args[1];
var pdf = args[2];
var options = JSON.parse(args[3]);
var doRender = function() {
console.log('doRender :>>');
var page = webpage.create();
// typekit workaround
page.settings.userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17';
page.customHeaders = {
Referer: url
};
page.viewportSize = options.page.viewportSize;
page.paperSize = options.page.paperSize;
if (options.header) {
var paperSize = page.paperSize;
var thatHeader = options.header;
var header = new Function("pageNum", "numPages", thatHeader.contents);
paperSize.header = {
height : thatHeader.height,
contents : phantom.callback(function(pageNum, numPages) {
return page.evaluate(header, pageNum, numPages);
})
}
page.paperSize = paperSize;
}
if (options.footer) {
var paperSize = page.paperSize;
var thatFooter = options.footer;
var footer = new Function("pageNum", "numPages", thatFooter.contents);
paperSize.footer = {
height : thatFooter.height,
contents : phantom.callback(function(pageNum, numPages) {
return page.evaluate(footer, pageNum, numPages);
})
}
page.paperSize = paperSize;
}
var pageOpened = function(status) {
console.log('pageOpened :>> ' + status);
var moreOptions = page.evaluate(function() {
return Way ? Way.htmltopdf : undefined;
});
console.log('moreOptions :>> ' + moreOptions);
if (moreOptions) {
var paperSize = page.paperSize;
if (moreOptions.header) {
var thatHeader = moreOptions.header;
paperSize.header = {
height : thatHeader.height,
contents : phantom.callback(function(pageNum, numPages) {
return page.evaluate(function(pageNum, numPages) {
return Way.htmltopdf.header.contents(pageNum, numPages);
}, pageNum, numPages);
})
};
}
if (moreOptions.footer) {
var thatFooter = moreOptions.footer;
paperSize.footer = {
height : thatFooter.height,
contents : phantom.callback(function(pageNum, numPages) {
return page.evaluate(function(pageNum, numPages) {
return Way.htmltopdf.footer.contents(pageNum, numPages);
}, pageNum, numPages);
})
};
console.log('footer :<< ' + page.paperSize.footer);
}
page.paperSize = paperSize;
}
console.log(page.paperSize.header);
page.render(pdf);
phantom.exit();
};
page.open(url, pageOpened);
};
var doAuthentication = function(auth) {
var authPage = webpage.create();
var authPageOpened = function(status) {
doRender.apply();
};
authPage.open(auth.url, 'post', auth.data, authPageOpened);
};
if (options.authInfo) {
doAuthentication.apply(this, [ options.authInfo ]);
} else {
doRender.apply(this);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy