Прямая печать PHP в клиентской системе

Я хочу печатать квитанции напрямую (конечно, молча) на соответствующие матричные принтеры, подключенные к клиентским системам, в локальном приложении, размещенном на wamp. Хотя мне это удалось, используя jsprintsetup в Mozilla. Но скорость печати всегда была проблемой.

Через несколько дней я смог без каких-либо задержек отправлять задания на печать напрямую из приложения php, и принтер отлично отвечал как с локального сервера, так и с клиентских систем. Но я протестировал это приложение в сети домена Windows, и в реальном случае не будет никакой сети домена, и приложение требует, чтобы это было сделано в любой локальной сети с доменом или без него. Я не уверен, но проблема может быть не в доменной сети.

И настоящая облажавшаяся вещь;

Сервер localhost печатает квитанции. Без вопросов! С клиента Мы можем отправить задание на печать на принтер, подключенный к серверу localhost. Отлично!

Но не получить подключение принтера к принтеру, подключенному к клиентской системе, ни с клиента, ни с сервера.

Предупреждение Php: ("Предупреждение: fopen(\192.168.1.13\TVS MSP 250 Star): не удалось открыть поток: Отказано в доступе в D:\wamp")

Примечание. Я проделал весь путь, чтобы сделать это, включая установку php_printer.dll, общий доступ к папке wamp и www с полными разрешениями, использование «\\systemname\printername» и много других вещей, чтобы проверить, будет ли это делать. Но нет помощь..

Помогите мне, пожалуйста..

Вот мой код;

$bold1 = Chr(27) . Chr(69); // semi em. bold
$bold0 = Chr(27) . Chr(70); // "" 
$initialized = chr(27).chr(79);
$initialized = chr(27).chr(64); // initialize printer
$initialized .= chr(27).chr(51).chr(40); //Select 6 lines per inch Line Spacing
$initialized .= chr(10).chr(12).chr(15).chr(50).chr(20); // Draft, Font, Pitch
$initialized .= chr(27).chr(79); // Cancel Skip Perforation
$initialized .= chr(27).chr(106).chr(108); // Reverse Line Feed
$condensed0 = chr(18);

$initialized .= chr(27).chr(97).chr(0); //justify left
$initialized .= chr(27).chr(37).chr(0); // Selects normal character set

$initialized .= chr(27).chr(67).chr(15); // Page Length
$initialized .= chr(27).chr(67).chr(5);
$initialized .= chr(13);
$data  = $initialized;
$data .= chr(27).chr(79); // Cancel Skip Perforation
$data .= chr(27).chr(120).chr(48); // Select Draft Mode
$data .= chr(27).chr(97).chr(0); // Justify Center
//$data .= chr(14); // Double Width For One Line
//$condensed1 = chr(15);                                    

$data .= $bold1."           HEADER      ".$bold0."\n";
$data .= chr(10);
$data .= "           "SUB HEADER"   "."\n";
//$data .= chr(10);
$data .= "             "."BASE LINE".""."\n";
//$data .= chr(10);
$data .= "   "."\n";
$data .= "Date: ".$time."       "."\n";

$data .= "|----------------------------------------------------------|\n";

$data .= "Thank You! Print Testing Successfull"."\n";

$data .= "|----------------------------------------------------------|\n";
$data .= chr(27).chr(102).chr(49);
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";

$fop = fopen($printer, "RAW");

if (!$fop){
    echo 'Selected Printer: '.$printer;
    print "<br/>";
    print "<img src=\"$image2\" width=\"16px\" height=\"15px\"\ align=\"absmiddle\"/>";
    print " ";
    echo  'Sorry! Could Not Connect To The Selected Printer';
    print "<br/>";
}
else
{
    print "<br/>";
    print "<img src=\"$image\" width=\"16px\" height=\"15px\"\ align=\"absmiddle\"/>";
    print " ";
    echo  'Printer Connected Successfully'; 
}
$data .= "\x00\x1Bi\x00";

if (!fwrite($fop,$data)){
    print "<img src=\"$image2\" width=\"16px\" height=\"15px\"\ align=\"absmiddle\"/>";
    print " ";
    echo 'Printing Failed!';
    print "<br/>";
}  
else
{
    print "<br/>";
    print "<img src=\"$image\" width=\"16px\" height=\"15px\"\ align=\"absmiddle\"/>";
    print " ";
    echo 'Printing Succeeded!';
    print "<br/>";
}

person Arun Sathyan    schedule 30.11.2014    source источник


Ответы (1)


Возможно, вы уже решили проблему, но это может помочь другим с похожей проблемой.

Если вы хотите, чтобы клиент печатал на клиентском принтере, то почему бы вам не установить веб-сервер и php на клиентском компьютере и не позволить клиентскому компьютеру запускать php-код, который печатает локально.

Вы передаете данные с веб-сайта сервера на локальный с помощью метода POST или аналогичного.

person Sucahyo Aji    schedule 30.06.2016