aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--css/print/pdf.css1
-rw-r--r--js/reveal.js11
-rw-r--r--test/test-pdf.html83
-rw-r--r--test/test-pdf.js15
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 });
+