aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2014-04-26 21:41:54 +0200
committerHakim El Hattab <hakim.elhattab@gmail.com>2014-04-26 21:42:16 +0200
commitddfb0aa86fdfc8e92d0b81fbe36dc79c4585dd86 (patch)
treeafb2ceb917c1cd26946e63d3a6e12b0085ced3d4 /js
parenta522312999c93b1a5a8353ab18d573c9c4ac83f2 (diff)
downloadperl-software-in-gnu-guix-ddfb0aa86fdfc8e92d0b81fbe36dc79c4585dd86.tar
perl-software-in-gnu-guix-ddfb0aa86fdfc8e92d0b81fbe36dc79c4585dd86.tar.gz
abide by configured width/height when printing to pdf
Diffstat (limited to 'js')
-rw-r--r--js/reveal.js27
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.
*/