Cetak Langsung ke Printer Dengan JavaScript

Satu permintaan yang banyak muncul di berbagai forum Javascript bertanya bagaimana mengirim halaman langsung ke printer tanpa terlebih dahulu menampilkan kotak dialog cetak.

Daripada hanya mengatakan itu padamu itu tidak bisa dilakukan mungkin penjelasan mengapa opsi semacam itu tidak mungkin akan lebih bermanfaat.

Kotak dialog cetak mana yang ditampilkan ketika seseorang menekan tombol tombol cetak di browser mereka atau Javascript window.print () Metode yang dijalankan tergantung pada sistem operasi dan printer apa yang diinstal pada komputer.

Karena kebanyakan orang menjalankan Windows di komputer mereka, pertama mari kita gambarkan bagaimana pengaturan pencetakan bekerja pada sistem operasi itu. Sistem operasi * nix dan Mac sedikit berbeda dalam perinciannya tetapi secara keseluruhan diatur serupa.

Dialog Cetak

Ada dua bagian ke kotak dialog cetak pada Windows. Yang pertama adalah bagian dari Windows API (Application Programming Interface). API adalah seperangkat potongan kode umum yang disimpan dalam berbagai DLL (

instagram viewer
Perpustakaan Tautan Dinamis) file yang merupakan bagian dari Windows sistem operasi. Setiap program Windows dapat (dan harus) memanggil API untuk melakukan fungsi-fungsi umum seperti menampilkan kotak Dialog Cetak sehingga ia akan melakukannya bekerja dengan cara yang sama di semua program dan tidak memiliki opsi berbeda di tempat yang berbeda dengan cara opsi cetak kembali pada program DOS hari. Print Dialog API juga menyediakan antarmuka umum yang memungkinkan semua program mengakses ke set driver printer yang sama daripada produsen printer harus membuat perangkat lunak driver untuk printer mereka untuk setiap program individu yang ingin digunakan Itu.

Driver printer adalah bagian lain dari dialog cetak. Ada beberapa bahasa yang berbeda yang dimengerti oleh pencetak yang mereka gunakan untuk mengontrol bagaimana halaman mencetak (mis. PCL5 dan Postscript). Driver printer menginstruksikan API Cetak tentang cara menerjemahkan format cetak internal standar bahwa sistem operasi memahami ke dalam bahasa markup kustom bahwa printer tertentu mengerti. Ini juga menyesuaikan opsi yang ditampilkan oleh dialog Cetak untuk mencerminkan opsi yang ditawarkan oleh printer tertentu.

Mengoperasikan Printer

Komputer individual mungkin tidak memiliki printer yang diinstal, mungkin memiliki satu printer lokal, mungkin saja akses ke beberapa printer melalui jaringan, bahkan dapat diatur untuk mencetak ke PDF atau cetak yang sudah diformat sebelumnya mengajukan. Di mana lebih dari satu "printer" didefinisikan, salah satunya ditetapkan sebagai printer default yang berarti printer yang menampilkan detailnya dalam dialog cetak saat pertama kali muncul.

Sistem operasi melacak printer default dan mengidentifikasi printer itu ke berbagai program di komputer. Ini memungkinkan program untuk memberikan parameter tambahan ke API cetak yang memerintahkannya untuk mencetak langsung ke printer default tanpa menampilkan dialog cetak terlebih dahulu. Banyak program memiliki dua opsi cetak yang berbeda - entri menu yang menampilkan dialog cetak dan tombol cetak cepat bilah alat yang mengirim langsung ke printer default.

Ketika Anda memiliki halaman web di internet yang akan dicetak pengunjung Anda, Anda tidak memiliki informasi tentang printer apa yang tersedia. Sebagian besar printer di seluruh dunia dikonfigurasikan untuk mencetak pada kertas A4 tetapi Anda tidak dapat menjamin bahwa printer diatur ke default itu. Satu negara Amerika Utara menggunakan ukuran kertas non-standar yang lebih pendek dan lebih lebar dari A4. Sebagian besar printer diatur untuk mencetak dalam mode potret (di mana arah yang lebih sempit adalah lebarnya tetapi beberapa mungkin diatur ke lanskap di mana dimensi yang lebih panjang adalah lebarnya. Tentu saja, setiap printer juga memiliki margin default yang berbeda di bagian atas, bawah, dan samping Halaman bahkan sebelum pemilik masuk dan mengubah semua pengaturan untuk mendapatkan printer seperti mereka ingin.

Mengingat semua faktor ini, Anda tidak memiliki cara untuk mengetahui apakah printer default dengan konfigurasi default akan mencetak web Anda halaman pada A3 dengan margin yang dapat diabaikan atau pada A5 dengan margin yang besar (menyisakan sedikit lebih dari area ukuran prangko di tengah-tengah halaman). Anda mungkin dapat berasumsi bahwa sebagian besar akan memiliki area cetak pada halaman sekitar 16cm x 25cm (plus atau minus 80%).

Kebutuhan Pencetakan

Karena printer sangat bervariasi antara pengunjung potensial Anda (apakah ada yang menyebutkan printer laser, printer inkjet, warna atau hitam dan putih hanya, kualitas foto, mode konsep, dan banyak lagi) Anda tidak memiliki cara untuk mengatakan apa yang harus mereka lakukan untuk mencetak halaman Anda dengan wajar format. mungkin mereka memiliki printer terpisah atau driver kedua untuk printer yang sama memberikan pengaturan yang sama sekali berbeda khusus untuk halaman web.

Selanjutnya, muncul masalah apa yang ingin mereka cetak. Apakah mereka ingin seluruh halaman atau mereka memilih hanya sebagian dari halaman yang ingin mereka cetak? Jika situs Anda menggunakan bingkai apakah mereka ingin mencetak semua bingkai seperti yang terlihat pada halaman, apakah mereka ingin mencetak setiap bingkai secara terpisah, atau mereka hanya ingin mencetak bingkai tertentu?

Kebutuhan untuk menjawab semua pertanyaan ini menjadikannya penting bahwa dialog cetak muncul kapan saja ingin mencetak sesuatu sehingga mereka dapat memastikan bahwa pengaturan sudah benar sebelum mereka menekan cetak tombol. Sebagian besar browser juga menyediakan kemampuan untuk menambahkan tombol "cetak cepat" ke salah satu bilah alat browser untuk memungkinkan halaman yang akan dicetak ke printer default menggunakan pengaturan browser default seperti apa yang akan dicetak dan bagaimana.

Javascript

Browser tidak membuat banyak pengaturan browser dan printer ini tersedia untuk Javascript. Javascript terutama berkaitan dengan memodifikasi arus halaman web dan browser web memberikan informasi minimal tentang browser itu sendiri dan hampir tidak ada informasi tentang sistem operasi yang tersedia Javascript karena Javascript tidak perlu mengetahui hal-hal itu untuk melakukan hal-hal yang seharusnya dilakukan Javascript.

Keamanan dasar mengatakan bahwa jika sesuatu seperti Javascript tidak perlu tahu tentang sistem operasi dan konfigurasi browser untuk memanipulasi halaman web maka seharusnya tidak disediakan itu informasi. Ini tidak seperti Javascript yang seharusnya dapat mengubah pengaturan printer untuk nilai yang sesuai mencetak halaman saat ini karena bukan itu tujuan Javascript - itu adalah tugas cetak dialog. Karena itu browser hanya menyediakan untuk Javascript hal-hal yang perlu diketahui Javascript seperti ukuran layar, ruang yang tersedia di jendela browser untuk menampilkan halaman, dan hal-hal serupa yang membantu Javascript mengetahui bagaimana halaman diletakkan. Halaman web saat ini adalah satu-satunya perhatian Javascript.

Intranet

Intranet tentu saja merupakan masalah yang sama sekali berbeda. Dengan intranet, Anda tahu semuanya mengakses halaman menggunakan browser tertentu (biasanya versi Internet Explorer terbaru) dan memiliki resolusi layar khusus dan akses ke printer tertentu. Ini berarti masuk akal pada intranet untuk dapat mencetak langsung ke printer tanpa menampilkan dialog cetak karena orang yang menulis halaman web tahu printer mana yang akan dicetak.

Pengganti Internet Explorer untuk Javascript (disebut JScript) karena itu memiliki sedikit lebih banyak informasi tentang peramban dan sistem operasi yang dilakukan Javascript sendiri. Komputer individual di jaringan yang menjalankan intranet mungkin dapat dikonfigurasi untuk memungkinkan JScript window.print () perintah tulis langsung ke printer tanpa menampilkan dialog cetak. Konfigurasi ini perlu diatur secara terpisah pada setiap komputer klien dan jauh di luar cakupan artikel tentang Javascript.

Ketika datang ke halaman web di internet sama sekali tidak ada cara yang dapat Anda buat Perintah Javascript untuk mengirim langsung ke printer default. Jika pengunjung Anda ingin melakukan itu, mereka harus mengatur tombol "cetak cepat" sendiri di bilah alat browser.

instagram story viewer