|
|
@ -2089,12 +2089,18 @@ var PageView = function pageView(container, pdfPage, id, scale, |
|
|
|
this.beforePrint = function pageViewBeforePrint() { |
|
|
|
this.beforePrint = function pageViewBeforePrint() { |
|
|
|
var pdfPage = this.pdfPage; |
|
|
|
var pdfPage = this.pdfPage; |
|
|
|
var viewport = pdfPage.getViewport(1); |
|
|
|
var viewport = pdfPage.getViewport(1); |
|
|
|
|
|
|
|
// Use the same hack we use for high dpi displays for printing to get better
|
|
|
|
|
|
|
|
// output until bug 811002 is fixed in FF.
|
|
|
|
|
|
|
|
var PRINT_OUTPUT_SCALE = 2; |
|
|
|
var canvas = this.canvas = document.createElement('canvas'); |
|
|
|
var canvas = this.canvas = document.createElement('canvas'); |
|
|
|
canvas.width = viewport.width; |
|
|
|
canvas.width = Math.floor(viewport.width) * PRINT_OUTPUT_SCALE; |
|
|
|
canvas.height = viewport.height; |
|
|
|
canvas.height = Math.floor(viewport.height) * PRINT_OUTPUT_SCALE; |
|
|
|
canvas.style.width = viewport.width + 'pt'; |
|
|
|
canvas.style.width = (PRINT_OUTPUT_SCALE * viewport.width) + 'pt'; |
|
|
|
canvas.style.height = viewport.height + 'pt'; |
|
|
|
canvas.style.height = (PRINT_OUTPUT_SCALE * viewport.height) + 'pt'; |
|
|
|
|
|
|
|
var cssScale = 'scale(' + (1 / PRINT_OUTPUT_SCALE) + ', ' + |
|
|
|
|
|
|
|
(1 / PRINT_OUTPUT_SCALE) + ')'; |
|
|
|
|
|
|
|
CustomStyle.setProp('transform' , canvas, cssScale); |
|
|
|
|
|
|
|
CustomStyle.setProp('transformOrigin' , canvas, '0% 0%'); |
|
|
|
|
|
|
|
|
|
|
|
var printContainer = document.getElementById('printContainer'); |
|
|
|
var printContainer = document.getElementById('printContainer'); |
|
|
|
printContainer.appendChild(canvas); |
|
|
|
printContainer.appendChild(canvas); |
|
|
@ -2102,6 +2108,13 @@ var PageView = function pageView(container, pdfPage, id, scale, |
|
|
|
var self = this; |
|
|
|
var self = this; |
|
|
|
canvas.mozPrintCallback = function(obj) { |
|
|
|
canvas.mozPrintCallback = function(obj) { |
|
|
|
var ctx = obj.context; |
|
|
|
var ctx = obj.context; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.save(); |
|
|
|
|
|
|
|
ctx.fillStyle = 'rgb(255, 255, 255)'; |
|
|
|
|
|
|
|
ctx.fillRect(0, 0, canvas.width, canvas.height); |
|
|
|
|
|
|
|
ctx.restore(); |
|
|
|
|
|
|
|
ctx.scale(PRINT_OUTPUT_SCALE, PRINT_OUTPUT_SCALE); |
|
|
|
|
|
|
|
|
|
|
|
var renderContext = { |
|
|
|
var renderContext = { |
|
|
|
canvasContext: ctx, |
|
|
|
canvasContext: ctx, |
|
|
|
viewport: viewport |
|
|
|
viewport: viewport |
|
|
|