2013-08-08 2 views
8

С помощью функции printer_open() в php я могу напечатать строку, которую я сохранил в переменной $content, и умею печатать из файла.Printer_open() для печати вывода html

$printer = "\\\\Pserver.php.net\\printername"; 
$handler = printer_open($printer); 
$content = "Test Content"; //string 
printer_write($handler, $content); 
printer_close($handler); 

Но есть выход HTML, который я сгенерированный из базы данных, и показывает на веб-странице, мне нужно напечатать, что непосредственно к напечатанному в том же формате, один раз при загрузке страницы, я попробовал много, но я не знаю, что я должен сделать, чтобы принтер печатал сразу один и тот же выход HTML после загрузки страницы с помощью printer_open().

Что мне делать? Пожалуйста, предложите лучший способ, чем это если


ОБНОВЛЕН

Я не хочу использовать windows.print() метод JavaScript, так как он показывает окно диалога печати вместо того, чтобы инициировать задание печати непосредственно принтер

Я хочу, чтобы пользователи нажмите отправить форму и принтер для печати квитанции непосредственно не задавая им ничего

+1

Вы хотите печатать с сервера или клиента? Обычно сервер не имеет доступа к визуализированному HTML, и вы не можете использовать PHP t print от клиента, так как PHP работает на сервере. – RoToRa

+0

@ Rahul-TS вы можете попробовать функцию javascript window.print(). http://www.w3schools.com/jsref/met_win_print.asp – xurca

+0

@RoToRa Я использую клиентский принтер –

ответ

2

Вы можете попробовать использовать выходной буфер:

ob_start(); 
// generate your output from the DB here 
// ..... 

// Send generated output to the printer 
printer_write($handler, ob_get_contents()); 

// And show it to client on the frontend 
ob_end_flush(); 
+0

работает на стороне клиента !!! слишком – Dipen

0

создать скрытое поле с автофокусом (требуется браузер с поддержкой HTML5) и вызвать распечатку с атрибутом html onblur (выход, если пользователь нажимает любой другой элемент формы) или атрибут onfocus для определенного элемента формы (кнопка) , Не отправляйте форму, потому что это приведет к перезагрузке страницы.

0

Насколько я понимаю ваш вопрос, вы пытаетесь отобразить HTML, а затем распечатать его. К сожалению, если вы сделаете его на стороне клиента, вам нужно будет распечатать его на стороне клиента, который инициирует диалог печати.

может запустить PhantomJS на сервере, чтобы отобразить HTML, сохранить снимок и распечатать его, но это звучит как массовый перебор, чтобы распечатать счет-фактуру.

Возможно, лучшей идеей было бы создать PDF-документ и распечатать его.

Смежные вопросы