我正在使用javascript代码打印带有一些文本的图像。我在我的html页面中使用了一个名为'divPrintArea'的div区域。该div的内容将通过调用javascript函数打印出来。
从Chrome以外的所有浏览器打印(即最新版本的ie,firefox,opera,safari)时,图像正常。但是在Chrome的情况下,它有时会丢失。
我的第二个问题是我无法将默认页面布局设置为“横向”。你有什么线索吗?请详细说明一些解决方案。 TIA。
function printdata() {
var printHtml = "";
printHtml = printHtml + "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>";
printHtml = printHtml + "<html xmlns='http://www.w3.org/1999/xhtml'>";
printHtml = printHtml + "<head>";
printHtml = printHtml + "<meta http-equiv='cache-control' content='no-cache, must-revalidate'>";
printHtml = printHtml + "<meta http-equiv='refresh' content='0; http://www.MyWebsite.com/' />";
printHtml = printHtml + "<meta http-equiv='expires' content='-1'>";
printHtml = printHtml + "<meta http-equiv='pragma' content='no-cache, must-revalidate'>";
printHtml = printHtml + "<title>www.MyWebsite.com</title>";
printHtml = printHtml + "<style type=\"text/css\" media=\"print\">td{border:0px solid #000; padding:2px 5px;}";
printHtml = printHtml + "body{background:#fff;";
printHtml = printHtml + "width='100%';";
printHtml = printHtml + "height='100%';";
printHtml = printHtml + "filter:progid:DXImageTransform.Microsoft.BasicImage(Rotation=3);";
printHtml = printHtml + "}";
printHtml = printHtml + "</style></head>";
printHtml = printHtml + "<body>";
printHtml = printHtml + "<div style=\"text-align:left; border-bottom:1px dashed #2D86C5; border-top:1px dashed #2D86C5; font-family:'GillSansMTRegular', Arial;\">";
printHtml = printHtml + document.getElementById("divPrintArea").innerHTML;
printHtml = printHtml + "</div>";
printHtml = printHtml + "</body>";
printHtml = printHtml + "</html>";
win = window.open("http://www.MyWebsite.com/", "My");
win.document.write(printHtml);
win.document.close();
win.focus();
win.onload = win.print();
win.close();
return false;
}
答案 0 :(得分:2)
您的代码存在问题:
filter:progid:DXImageTransform.Microsoft.BasicImage(Rotation=3);
仅IE支持此功能,您应该使用CSS3的transform
代替。
width='100%';
height='100%';
我们不在CSS中使用=
符号。我们使用:
。也许这就是问题的原因。
好吧,在你的代码中,你不应该真的做这一切。您应该使用createElement
,并将所有printHtml = printHtml +
更改为
printHtml +=
此外,使用document.write
已过时。请改用appendChild
。 [MDN]
答案 1 :(得分:0)
要打印图像,您应关闭窗口,如下所示:
setTimeout(function () {
toDoWindow.close();
}, 2000);