Ketika kita ingin mencetak data dengan php biasanya kita akan mencetak teks dalam bentuk PDF yang dimuat dalam browser lalu diprint atau menggunakan javascript print window. masalah terpecahkan memang tapi ada kalanya customer minta agar proses cetak data bisa dilakukan secara langsung atau direct print istilah nya seperti aplikasi penjualan yang dibuat dengan visual basic atau java misalnya.

sebenarnya PHP juga support untuk fitur direct print hanya saja kita butuh perjuangan agar fitur ini bisa digunakan jika kita menggunakan bahasa pemograman PHP.

Menginstall Extensi php_printer Di OS Windows

PHP sudah menyediakan extensi yang bernama php_printer untuk menyelesaikan masalah ini, hanya saja extension ini tidak terinstall secara otomatis ketika anda menginstall PHP baik secara terpisah atau menggunakan Xampp, jadi anda harus menginstallnya secara manual.

Untuk menginstall library ini, silahkan download library php_printer dan silahkan pilih file yang sesuai dengan versi PHP yang anda gunakan. jika sudah silahkan extract ke C:\xampp\php\ext.

Kemudian kita akan mendaftarkan extensi ini agar dikenali oleh PHP, cara nya silahkan buka file php.ini yang ada pada folder C:\xampp\php\ dan tambahkan script berikut ini :

extension=php_printer.dll

setelah itu jangan lupa lakukan save dan silahkan restart apache anda untuk mendapatkan perubahan, sekarang silahkan buka halaman phpinfo()

Seperti yang terlihat bahwa sekarang extension php_printer sudah terpasang dengan baik, langkah selanjutnya kita akan melakukan percobaan untuk print data secara langsung.

Script Cetak Data Secara Langsung Dengan PHP

sekarang kita akan membuats cript untuk mencetak data langsng ke printer ketika file ini dibuka, silahkan buat sebuah file baru dengan nama cetak_langsung.php dan tulis script berikut ini :

<?php
/* contoh text */ 
$text = 'Eh, ini adalah testing aplikasi cetak teks langsung ke printer dengan PHP lhoo....'; 
/* tulis dan buka koneksi ke printer */ 
$printer = printer_open("EPSON L120 Series"); 
/* write the text to the print job */ 
printer_write($printer, $text); 
/* close the connection */ 
printer_close($printer);
?>

Anda bisa mendapatkan informasi printer pada settingan devices and printer pada control panel, silahkan sesuaikan dengan printer yang ingin anda gunakan ketika mencetak data.

Selanjutnya silahkan buka web browser anda dan akses file tersebut, jika script yang anda tulis sudah benar maka seharusnya printer akan langsung mencetak data yang anda tulis tadi.

Menampilkan Daftar Printer Yang Terhubung Dengan Komputer

Sekarang misalnya dalam satu network jaringan memiliki beberapa printer yang akan digunakan misalnya ingin mencetak data ke printer devisi IT,  Devisi Keuangan dan sebagainya. kalau tadi kita langsung menetapkan printer yang akan digunakan maka sekarang kita akan menampilkan daftar printer yang terhubung lalu menampilkan nya untuk dipilih ketika akan mencetak data. silahkan buat sebuah file baru dengan nama display_printer.php dan tulislah script berikut :

<html>
 <head>
 <title>Menampilkan List Printer</title>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
 <script type="text/javascript">
 function cetak(){
 var printer = $("#printer").val();
 $.ajax({
 url : "cetak_langsung.php",
 type: "POST",
 data : "nama_printer="+printer,
 success: function(data, textStatus, jqXHR)
 {
 alert('Data Sudah DIcetak Ke Printer : '+printer)
 }
 });
}
 </script>
 </head>
 <body>


 Silahkan Pilih Printer :
<?php
 $getprt = printer_list(PRINTER_ENUM_LOCAL);
 $printers = serialize($getprt);
 $printers = unserialize($printers);
 //Menampilkan List Printer
 echo '<select name="printers" id="printer">';
 foreach ($printers as $PrintDest)
 echo "<option value='" . $PrintDest["NAME"] . "'>" . explode(",", $PrintDest["DESCRIPTION"])[1] . "</option>";
 echo '</select>';
 ?>
 <br>
 <button type="submit" onClick="cetak()">Cetak Data</button>
 </body>
</html>

jika sudah silahkan save untuk menyimpan perubahan, sekarang silahkan akses http://localhost/print/display_printer.php melalui web browser anda maka akan tampil seperti dibawah ini, untuk mencetak data anda bisa memilih list printer yang tersedia dan klik button cetak kemudia proses cetak data akan dilakukan secara direct dengan teknik ajax.

Sumber: belajarphp.net