mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-12-27 02:51:52 +00:00
96d4a3ecf7
Due to historical reasons, the code is in subfolder "1". With SVN removal, we place the code back and remove the annoying "1" folder.
49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
/**
|
|
* phantomjs script for printing presentations to PDF.
|
|
*
|
|
* Example:
|
|
* phantomjs print-pdf.js "http://lab.hakim.se/reveal-js?print-pdf" reveal-demo.pdf
|
|
*
|
|
* By Manuel Bieh (https://github.com/manuelbieh)
|
|
*/
|
|
|
|
// html2pdf.js
|
|
var page = new WebPage();
|
|
var system = require( 'system' );
|
|
|
|
var slideWidth = system.args[3] ? system.args[3].split( 'x' )[0] : 960;
|
|
var slideHeight = system.args[3] ? system.args[3].split( 'x' )[1] : 700;
|
|
|
|
page.viewportSize = {
|
|
width: slideWidth,
|
|
height: slideHeight
|
|
};
|
|
|
|
// TODO
|
|
// Something is wrong with these config values. An input
|
|
// paper width of 1920px actually results in a 756px wide
|
|
// PDF.
|
|
page.paperSize = {
|
|
width: Math.round( slideWidth * 2 ),
|
|
height: Math.round( slideHeight * 2 ),
|
|
border: 0
|
|
};
|
|
|
|
var inputFile = system.args[1] || 'index.html?print-pdf';
|
|
var outputFile = system.args[2] || 'slides.pdf';
|
|
|
|
if( outputFile.match( /\.pdf$/gi ) === null ) {
|
|
outputFile += '.pdf';
|
|
}
|
|
|
|
console.log( 'Printing PDF (Paper size: '+ page.paperSize.width + 'x' + page.paperSize.height +')' );
|
|
|
|
page.open( inputFile, function( status ) {
|
|
window.setTimeout( function() {
|
|
console.log( 'Printed succesfully' );
|
|
page.render( outputFile );
|
|
phantom.exit();
|
|
}, 1000 );
|
|
} );
|
|
|