Проблема с печатью данных в Internet Explorer.
От: xb1x  
Дата: 21.03.08 21:23
Оценка:
Здравствуйте друзья. Столкнулся со следующей проблемой : есть необходимость распечатать некий счет, делаю так :

function print_schet() {

$db = mysql_connect($GLOBALS['host'], $GLOBALS['user'], $GLOBALS['password']);
mysql_select_db($GLOBALS['datebase'],$db);

$id = $_GET['id'];

$query = "SET CHARSET CP1251";
$result = mysql_query($query,$db);

$query = "select blank
from schets where id = $id";
$result = mysql_query($query,$db);

list($blank) = mysql_fetch_array($result);

echo '
<script type="text/javascript">

function printpr()
{
var OLECMDID = 6;
/* OLECMDID values:
* 6 — print
* 7 — print preview
* 1 — open window
* 4 — Save As
*/
var PROMPT = 1; // 2 DONTPROMPTUSER
var WebBrowser = \'<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>\';
document.body.insertAdjacentHTML(\'beforeEnd\', WebBrowser);
WebBrowser1.ExecWB(OLECMDID, PROMPT);
WebBrowser1.outerHTML = "";
}

var tick = 0;
function clock() {
tick = tick+1;
if (tick ==40){
printpr();
window.close();
}
var units = new
String("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||");
document.clock.seconds.value = units.substring(0, tick);window.setTimeout("clock()", 40);
}
</script>

<body onLoad="clock();">
<form name="clock">
<table border=0><tr><td class=catalog align=center>
Идет печать ...<br>
<img src=/src/res/printer.gif>
<input type=text name="seconds" size="40" style="font-size: 30px;font-weight: bold;border: 0;color: green; width:250px">
</td></tr></table>
<table class=onprint_table><tr><td>';
echo $blank;
echo '
</form>
</td></tr></table>

</body>
';

}



этот код загружается в окно, открытое window.open() выполняется функция clock() которая рисует "прогресс бар", и выполняет печать документа. Я пробовал использовать window.print() для печати подготовленного бланка счета (он хранится в $blank), но браузер (ИЕ в.6.0. СП 2) выдает ошибку при печати, говорит "Ошибка при выполнении этой операции", аналогично он пишет и при выполнении моей функции printpr(); которая выполняет те же действия что и window.print(), но имеется возможность использовать некоторые прибамбасы (см. код).

Однако, когда в ИЕ нажать кнопку печать, расположенную на MenuBar, то печать идет !

Друзья, в чем проблема ? попробуйте пожалуйста потестировать мой код.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.