Как я могу динамически изменить ориентацию документа перед печатью - PullRequest
2 голосов
/ 01 августа 2011

Я могу заставить диалог печати придумать javascript window.print();, но не могу изменить его на альбомный.это возможно с помощью jquery или каким-либо другим способом?

edit

, если нет, есть ли обходной путь?

Ответы [ 4 ]

2 голосов
/ 01 августа 2011

Я нашел решение для IE6, но не для IE7 или Firefox

<script type="text/javascript">
var shell;
function SetPrintProperties() {
try {
shell = new ActiveXObject("WScript.Shell");
shell.SendKeys("%fu");
window.setTimeout("javascript:SetPaperSize();", 1200);
window.setTimeout("javascript:setLandScape();", 2000);
} catch (e) {
alert('Please verify that your print settings have a Landscape orientation and minimum margins.');
}
}
function SetPaperSize() {
shell.sendKeys("%a{TAB}.2{TAB}0{TAB}0{TAB}0{ENTER}");
}
function setLandScape() {
shell.sendKeys("%fp");
window.print();
}
</script>
<body onload="SetPrintProperties()">
1 голос
/ 01 августа 2011

Я думаю, что вы должны позволить браузеру обрабатывать печать и просто установить специальный CSS для нее.

<link rel="stylesheet" type="text/css" href="style.css" media="print" />
0 голосов
/ 01 августа 2011

<script language="javascript" type="text/javascript">

var shell = new ActiveXObject("WScript.Shell");

function SetPrintProperties() {
try {
window.setTimeout("BLOCKED SCRIPTshell.SendKeys('%fu');",1);
window.setTimeout("BLOCKED SCRIPTSetPaperSize();", 1);
print();
} catch (e) {
alert ("An exception occured: " + e + "\nCode is: " + e.number + "\nDescription is: " + e.description);
alert('Please verify that your print settings have a Landscape orientation and minimum margins.');
}
}

function SetPaperSize() {
shell.sendKeys("%a{TAB}.2{TAB}0{TAB}0{TAB}0{ENTER}");
}

SetPrintProperties();

</script>

0 голосов
/ 01 августа 2011

Это проблема, связанная с программным обеспечением принтера, вы не сможете сделать это без существенного взлома JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...