diff options
author | Hakim El Hattab <hakim.elhattab@gmail.com> | 2014-04-26 21:41:54 +0200 |
---|---|---|
committer | Hakim El Hattab <hakim.elhattab@gmail.com> | 2014-04-26 21:42:16 +0200 |
commit | ddfb0aa86fdfc8e92d0b81fbe36dc79c4585dd86 (patch) | |
tree | afb2ceb917c1cd26946e63d3a6e12b0085ced3d4 /js | |
parent | a522312999c93b1a5a8353ab18d573c9c4ac83f2 (diff) | |
download | fosdem-2018-presentation-ddfb0aa86fdfc8e92d0b81fbe36dc79c4585dd86.tar fosdem-2018-presentation-ddfb0aa86fdfc8e92d0b81fbe36dc79c4585dd86.tar.gz |
abide by configured width/height when printing to pdf
Diffstat (limited to 'js')
-rw-r--r-- | js/reveal.js | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/js/reveal.js b/js/reveal.js index a203418..5dc6856 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -413,21 +413,19 @@ var Reveal = (function(){ */ function setupPDF() { - // The aspect ratio of pages when saving to PDF in Chrome, - // we need to abide by this ratio when determining the pixel - // size of our pages - var pageAspectRatio = 1.295; - var slideSize = getComputedSlideSize( window.innerWidth, window.innerHeight ); // Dimensions of the PDF pages var pageWidth = Math.round( slideSize.width * ( 1 + config.margin ) ), - pageHeight = Math.round( pageWidth / pageAspectRatio ); + pageHeight = Math.round( slideSize.height * ( 1 + config.margin ) ); // Dimensions of slides within the pages var slideWidth = slideSize.width, slideHeight = slideSize.height; + // Let the browser know what page size we want to print + injectStyleSheet( '@page{size:'+ pageWidth +'px '+ pageHeight +'px; margin: 0;}' ); + document.body.classList.add( 'print-pdf' ); document.body.style.width = pageWidth + 'px'; document.body.style.height = pageHeight + 'px'; @@ -945,6 +943,23 @@ var Reveal = (function(){ } /** + * Injects the given CSS styles into the DOM. + */ + function injectStyleSheet( value ) { + + var tag = document.createElement( 'style' ); + tag.type = 'text/css'; + if( tag.styleSheet ) { + tag.styleSheet.cssText = value; + } + else { + tag.appendChild( document.createTextNode( value ) ); + } + document.getElementsByTagName( 'head' )[0].appendChild( tag ); + + } + + /** * Retrieves the height of the given element by looking * at the position and height of its immediate children. */ |