diff options
-rw-r--r-- | css/print/pdf.css | 1 | ||||
-rw-r--r-- | js/reveal.js | 11 | ||||
-rw-r--r-- | test/test-pdf.html | 83 | ||||
-rw-r--r-- | test/test-pdf.js | 15 |
4 files changed, 108 insertions, 2 deletions
diff --git a/css/print/pdf.css b/css/print/pdf.css index bc09a70..e43d05c 100644 --- a/css/print/pdf.css +++ b/css/print/pdf.css @@ -152,6 +152,7 @@ ul, ol, div, p { /* Slide backgrounds are placed inside of their slide when exporting to PDF */ .reveal section .slide-background { + display: block !important; position: absolute; top: 0; left: 0; diff --git a/js/reveal.js b/js/reveal.js index a4dba10..d1f2fb0 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -2693,11 +2693,18 @@ var Reveal = (function(){ /** * Returns the background element for the given slide. * All slides, even the ones with no background properties - * defined, have a background element so this never returns - * null. + * defined, have a background element so as long as the + * index is valid an element will be returned. */ function getSlideBackground( x, y ) { + // When printing to PDF the slide backgrounds are nested + // inside of the slides + if( isPrintingPDF() ) { + var slide = getSlide( x, y ); + return slide ? slide.querySelector( '.slide-background' ) : undefined; + } + var horizontalBackground = document.querySelectorAll( '.backgrounds>.slide-background' )[ x ]; var verticalBackgrounds = horizontalBackground && horizontalBackground.querySelectorAll( '.slide-background' ); diff --git a/test/test-pdf.html b/test/test-pdf.html new file mode 100644 index 0000000..751ed26 --- /dev/null +++ b/test/test-pdf.html @@ -0,0 +1,83 @@ +<!doctype html> +<html lang="en"> + + <head> + <meta charset="utf-8"> + + <title>reveal.js - Test PDF exports</title> + + <link rel="stylesheet" href="../css/reveal.css"> + <link rel="stylesheet" href="../css/print/pdf.css"> + <link rel="stylesheet" href="qunit-1.12.0.css"> + </head> + + <body style="overflow: auto;"> + + <div id="qunit"></div> + <div id="qunit-fixture"></div> + + <div class="reveal" style="display: none;"> + + <div class="slides"> + + <section> + <h1>1</h1> + <img data-src="fake-url.png"> + </section> + + <section> + <section> + <h1>2.1</h1> + </section> + <section> + <h1>2.2</h1> + </section> + <section> + <h1>2.3</h1> + </section> + </section> + + <section id="fragment-slides"> + <section> + <h1>3.1</h1> + <ul> + <li class="fragment">4.1</li> + <li class="fragment">4.2</li> + <li class="fragment">4.3</li> + </ul> + </section> + + <section> + <h1>3.2</h1> + <ul> + <li class="fragment" data-fragment-index="0">4.1</li> + <li class="fragment" data-fragment-index="0">4.2</li> + </ul> + </section> + + <section> + <h1>3.3</h1> + <ul> + <li class="fragment" data-fragment-index="1">3.3.1</li> + <li class="fragment" data-fragment-index="4">3.3.2</li> + <li class="fragment" data-fragment-index="4">3.3.3</li> + </ul> + </section> + </section> + + <section> + <h1>4</h1> + </section> + + </div> + + </div> + + <script src="../lib/js/head.min.js"></script> + <script src="../js/reveal.js"></script> + <script src="qunit-1.12.0.js"></script> + + <script src="test-pdf.js"></script> + + </body> +</html> diff --git a/test/test-pdf.js b/test/test-pdf.js new file mode 100644 index 0000000..8ec34fd --- /dev/null +++ b/test/test-pdf.js @@ -0,0 +1,15 @@ + +Reveal.addEventListener( 'ready', function() { + + // Only one test for now, we're mainly ensuring that there + // are no execution errors when running PDF mode + + test( 'Reveal.isReady', function() { + strictEqual( Reveal.isReady(), true, 'returns true' ); + }); + + +} ); + +Reveal.initialize({ pdf: true }); + |