font-size: 10px;
}
-@media print {
- #sidebarContainer, .toolbar, #loadingBox, #errorWrapper, .textLayer {
- display: none;
- }
+@page {
+ margin: 0;
+}
- #mainContainer, #viewerContainer, .page, .page canvas {
- position: static;
- padding: 0;
- margin: 0;
- }
+#printContainer {
+ display: none;
+}
- .page {
- float: left;
+@media print {
+ #outerContainer {
display: none;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
}
-
- .page[data-loaded] {
+ #printContainer {
display: block;
}
+ canvas {
+ position: relative;
+ top: 0;
+ left: 0;
+ }
}
@media all and (max-width: 950px) {
return currentPageNumber;
},
+ get supportsPrinting() {
+ var canvas = document.createElement('canvas');
+ return 'mozPrintCallback' in canvas;
+ },
+
open: function pdfViewOpen(url, scale, password) {
var parameters = {password: password};
if (typeof url === 'string') { // URL
params[unescape(key)] = unescape(value);
}
return params;
+ },
+
+ beforePrint: function pdfViewSetupBeforePrint() {
+ if (!this.supportsPrinting) {
+ alert('Printing is not supported by this browser.');
+ return;
+ }
+ for (var i = 0, ii = this.pages.length; i < ii; ++i) {
+ this.pages[i].beforePrint();
+ }
+ },
+
+ afterPrint: function pdfViewSetupAfterPrint() {
+ var div = document.getElementById('printContainer');
+ while (div.hasChildNodes())
+ div.removeChild(div.lastChild);
}
};
div.setAttribute('data-loaded', true);
};
+ this.beforePrint = function pageViewBeforePrint() {
+ var pdfPage = this.pdfPage;
+ var viewport = pdfPage.getViewport(1);
+
+ var canvas = this.canvas = document.createElement('canvas');
+ canvas.width = viewport.width;
+ canvas.height = viewport.height;
+ canvas.style.width = viewport.width + 'pt';
+ canvas.style.height = viewport.height + 'pt';
+
+ var printContainer = document.getElementById('printContainer');
+ printContainer.appendChild(canvas);
+
+ var self = this;
+ canvas.mozPrintCallback = function(obj) {
+ var ctx = obj.context;
+ var renderContext = {
+ canvasContext: ctx,
+ viewport: viewport
+ };
+
+ pdfPage.render(renderContext).then(function() {
+ // Tell the printEngine that rendering this canvas/page has finished.
+ obj.done();
+ self.pdfPage.destroy();
+ }, function(error) {
+ console.error(error);
+ // Tell the printEngine that rendering this canvas/page has failed.
+ // This will make the print proces stop.
+ obj.abort();
+ });
+ };
+ };
+
this.updateStats = function pageViewUpdateStats() {
if (PDFJS.pdfBug && Stats.enabled) {
var stats = this.stats;
evt.preventDefault();
}
});
+
+window.addEventListener('beforeprint', function beforePrint(evt) {
+ PDFView.beforePrint();
+});
+
+window.addEventListener('afterprint', function afterPrint(evt) {
+ PDFView.afterPrint();
+});