aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Riezebosch <mriezebosch@gmail.com>2017-03-14 14:13:24 +0100
committerManuel Riezebosch <mriezebosch@gmail.com>2017-03-14 18:54:04 +0100
commit9a7c7ce93a530cfb8bb85e0670b1ffd171ccbba4 (patch)
tree4c794491a51b2718320e9f493fc5c722496952b7
parent7e6fb9ec87f10f4cc379240fc5824925ebf2bff3 (diff)
downloadfreenode-live-2017-presentation-9a7c7ce93a530cfb8bb85e0670b1ffd171ccbba4.tar
freenode-live-2017-presentation-9a7c7ce93a530cfb8bb85e0670b1ffd171ccbba4.tar.gz
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
-rw-r--r--plugin/print-pdf/print-pdf.js24
1 files changed, 16 insertions, 8 deletions
diff --git a/plugin/print-pdf/print-pdf.js b/plugin/print-pdf/print-pdf.js
index d1c3251..9ffc261 100644
--- a/plugin/print-pdf/print-pdf.js
+++ b/plugin/print-pdf/print-pdf.js
@@ -6,6 +6,7 @@
*
* @author Manuel Bieh (https://github.com/manuelbieh)
* @author Hakim El Hattab (https://github.com/hakimel)
+ * @author Manuel Riezebosch (https://github.com/riezebosch)
*/
// html2pdf.js
@@ -21,11 +22,11 @@ if( outputFile.match( /\.pdf$/gi ) === null ) {
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 ) {
- console.log( 'Export PDF: Preparing print layout [2/3]' );
+ console.log( 'Export PDF: Preparing print layout [2/4]' );
var config = probePage.evaluate( function() {
return Reveal.getConfig();
@@ -40,14 +41,22 @@ probePage.open( inputFile, function( status ) {
};
printPage.open( inputFile, function( status ) {
- window.setTimeout( function() {
- console.log( 'Export PDF: Writing file [3/3]' );
+ console.log( 'Export PDF: Preparing pdf [3/4]')
+ 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 );
console.log( 'Export PDF: Finished successfully!' );
phantom.exit();
- }, 1000 );
- } );
-
+ }, 0);
+ };
}
else {
@@ -55,7 +64,6 @@ probePage.open( inputFile, function( status ) {
phantom.exit(1);
}
-
} );