print-pdf using callback iso timer
Use window.callPhantom icw page. onCallback to wait for pdf-ready event. From: http://stackoverflow.com/a/28925479/129269
This commit is contained in:
		@@ -6,6 +6,7 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * @author Manuel Bieh (https://github.com/manuelbieh)
 | 
					 * @author Manuel Bieh (https://github.com/manuelbieh)
 | 
				
			||||||
 * @author Hakim El Hattab (https://github.com/hakimel)
 | 
					 * @author Hakim El Hattab (https://github.com/hakimel)
 | 
				
			||||||
 | 
					 * @author Manuel Riezebosch (https://github.com/riezebosch)
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// html2pdf.js
 | 
					// html2pdf.js
 | 
				
			||||||
@@ -21,11 +22,11 @@ if( outputFile.match( /\.pdf$/gi ) === null ) {
 | 
				
			|||||||
	outputFile += '.pdf';
 | 
						outputFile += '.pdf';
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
console.log( 'Export PDF: Reading reveal.js config [1/3]' );
 | 
					console.log( 'Export PDF: Reading reveal.js config [1/4]' );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
probePage.open( inputFile, function( status ) {
 | 
					probePage.open( inputFile, function( status ) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	console.log( 'Export PDF: Preparing print layout [2/3]' );
 | 
						console.log( 'Export PDF: Preparing print layout [2/4]' );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var config = probePage.evaluate( function() {
 | 
						var config = probePage.evaluate( function() {
 | 
				
			||||||
		return Reveal.getConfig();
 | 
							return Reveal.getConfig();
 | 
				
			||||||
@@ -40,14 +41,22 @@ probePage.open( inputFile, function( status ) {
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		printPage.open( inputFile, function( status ) {
 | 
							printPage.open( inputFile, function( status ) {
 | 
				
			||||||
			window.setTimeout( function() {
 | 
								console.log( 'Export PDF: Preparing pdf [3/4]')
 | 
				
			||||||
				console.log( 'Export PDF: Writing file [3/3]' );
 | 
								printPage.evaluate(function() {
 | 
				
			||||||
 | 
									Reveal.isReady() ? window.callPhantom() : Reveal.addEventListener( 'pdf-ready', window.callPhantom );
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
							} );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							printPage.onCallback = function(data) {
 | 
				
			||||||
 | 
								// For some reason we need to "jump the queue" for syntax highlighting to work.
 | 
				
			||||||
 | 
								// See: http://stackoverflow.com/a/3580132/129269
 | 
				
			||||||
 | 
								setTimeout(function() {
 | 
				
			||||||
 | 
									console.log( 'Export PDF: Writing file [4/4]' );
 | 
				
			||||||
				printPage.render( outputFile );
 | 
									printPage.render( outputFile );
 | 
				
			||||||
				console.log( 'Export PDF: Finished successfully!' );
 | 
									console.log( 'Export PDF: Finished successfully!' );
 | 
				
			||||||
				phantom.exit();
 | 
									phantom.exit();
 | 
				
			||||||
			}, 1000 );
 | 
								}, 0);
 | 
				
			||||||
		} );
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	else {
 | 
						else {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -55,7 +64,6 @@ probePage.open( inputFile, function( status ) {
 | 
				
			|||||||
        phantom.exit(1);
 | 
					        phantom.exit(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
} );
 | 
					} );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user