1

私はJavaScriptコードを使用して、テキスト付きの画像も印刷しています。「divPrintArea」という名前の html ページで div 領域を使用しました。その div の内容は、javascript 関数を呼び出すことによって出力されます。

Chrome を除くすべてのブラウザ (つまり、Firefox、Opera、Safari の最新バージョン) を除くすべてのブラウザから印刷するときに、画像は問題なく表示されます。ただし、Chrome の場合は、見つからないことがあります。

2 つ目の問題は、デフォルトのページ レイアウトを「横」に設定できなかったことです。手がかりはありますか?いくつかの解決策を詳しく教えてください。ティア。

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;

}

4

2 に答える 2

2

コードに問題があります:

filter:progid:DXImageTransform.Microsoft.BasicImage(Rotation=3);

これは IE でのみサポートされており、代わりに CSS3 を使用する必要がありますtransform

width='100%';
height='100%';

=サインイン CSSは使用しません。を使用します:。たぶんこれが問題の原因です。

補足事項

あなたのコードでは、実際にこのすべてを行うべきではありません。を使用createElementし、すべてをに変更printHtml = printHtml +する必要があります

printHtml += 

また、使用document.writeは時代遅れです。appendChild代わりに使用してください。[MDN]

于 2012-04-13T07:05:01.880 に答える