2

我正在一个用户可以打印测验或抽认卡的网站上工作。打印功能在除 Safari 之外的所有浏览器(IE9、Firefox、Chrome)上运行良好。在 Safari 上,当用户打印任何测验时,会打印出额外的空白页。我发现计算像素点比的逻辑正在产生问题。这是我的代码示例。

function getHeight(elem) {

var elem_height = 0;
if (typeof elem.innerHeight != 'undefined') {
elem_height = elem.innerHeight;
} else {
elem_height = elem.clientHeight;
    }

return parseInt(elem_height);
} 

var dpiBoxHeight = getHeight(document.getElementById('dpiBox'));
if (dpiBoxHeight < 1) dpiBoxHeight = 96;            
var pixelPointRatio = 72 / dpiBoxHeight;

'dpiBox' 是一个空的 div,在 CSS 中我们将默认高度定义为 1 英寸。

值 72 表示每英寸点数。在 safari 中,我将 'dpiBoxHeight' 设为 96。

如果我更改,每英寸点数值高于 85 或将“dpiBoxHeight”更改为小于 85。不会打印空白页。但是,这会增加总打印页数。

请建议您是否有可用于防止在 Safari 上打印空白页并且在所有浏览器上兼容的解决方案/解决方法

预先感谢, 内哈

4

0 回答 0