浏览代码

fix empty pages in pdf exports (closes #1804)

Hakim El Hattab 7 年之前
父节点
当前提交
286b69b61f
共有 2 个文件被更改,包括 9 次插入3 次删除
  1. 2 1
      css/print/pdf.css
  2. 7 2
      js/reveal.js

+ 2 - 1
css/print/pdf.css

@@ -90,7 +90,7 @@ ul, ol, div, p {
 }
 
 .reveal .slides section {
-	page-break-after: always !important;
+	page-break-after: auto !important;
 
 	visibility: visible !important;
 	display: block !important;
@@ -139,6 +139,7 @@ ul, ol, div, p {
 	left: 0;
 	width: 100%;
 	height: 100%;
+	z-index: auto !important;
 }
 
 /* Display slide speaker notes when 'showNotes' is enabled */

+ 7 - 2
js/reveal.js

@@ -598,7 +598,7 @@
 
 		// Dimensions of the PDF pages
 		var pageWidth = Math.floor( slideSize.width * ( 1 + config.margin ) ),
-			pageHeight = Math.floor( slideSize.height * ( 1 + config.margin  ) );
+			pageHeight = Math.floor( slideSize.height * ( 1 + config.margin ) );
 
 		// Dimensions of slides within the pages
 		var slideWidth = slideSize.width,
@@ -652,7 +652,12 @@
 				// so that no page ever flows onto another
 				var page = document.createElement( 'div' );
 				page.className = 'pdf-page';
-				page.style.height = ( pageHeight * numberOfPages ) + 'px';
+
+				// Reduce total height by 1px so that the page ends before
+				// the page, otherwise the page's 'page-break-after' will
+				// land on the wrong page
+				page.style.height = ( ( pageHeight * numberOfPages ) - 1 ) + 'px';
+
 				slide.parentNode.insertBefore( page, slide );
 				page.appendChild( slide );