Proyek Linux Foundation

Halaman ini berisi detail project penulisan teknis yang diterima untuk Google Season Dokumen.

Ringkasan proyek

Organisasi open source:
Linux Foundation
Penulis teknis:
PIYUSHgoyal16
Nama proyek:
Panduan Tutorial dan Desain untuk driver Printer/Pemindai di Aplikasi Printer
Durasi proyek:
Durasi standar (3 bulan)

Project description

Ringkasan

{i>Driver<i} printer klasik yang terdiri dari filter khusus printer dan PPD (Postscript Printer Description), menjelaskan kemampuan printer dan filter mana yang harus dipanggil) file yang harus ditempatkan di direktori tertentu dari sistem file digantikan oleh apa yang disebut Aplikasi Printer, emulasi dari printer jaringan IPP.

Sebagian besar {i>printer<i} serbaguna modern adalah {i>printer<i} IPP yang memungkinkan pencetakan tanpa driver. Mereka mengiklankan diri melalui DNS-SD, klien dapat memeriksa informasi kapabilitas melalui permintaan IPP, dan mereka menggunakan format data standar untuk pekerjaan cetak. Printer yang tidak menyediakan fungsi ini, biasanya printer lama atau khusus memerlukan driver printer.

Aplikasi Printer adalah daemon yang mendeteksi printer yang didukung dan mengiklankan printer tersebut di localhost sebagai printer IPP Everywhere. Aplikasi Printer berisi perangkat lunak untuk mencetak pekerjaan yang masuk pada printer yang didukungnya, mengonversi data ke bahasa asli printer, dan memberikan info tentang kemampuan printer kepada klien berdasarkan permintaan. Aplikasi {i>Printer<i} bahkan memiliki antarmuka administrasi web, seperti {i>printer<i} jaringan yang sebenarnya.

Seperti yang kita ketahui, Linux berpindah ke paket dalam sandbox (misalnya Snap) dan pencetakan juga bergerak ke arah tersebut. Dalam paket dengan sandbox, kita tidak dapat mengubah konten direktori setelah dibuat. Sistem kami tidak lagi modular. Kami tidak dapat memilih paket driver printer yang akan diinstal. Aplikasi {i>Printer<i} mengatasi masalah modularitas ini dan memberi kita kebebasan yang sama seperti dalam kasus {i>driver <i}printer.

Driver printer dan pemindai di Snaps bukan hanya merupakan persyaratan untuk CUPS yang disnap dan aplikasi yang disnap, keduanya juga berfungsi pada sistem yang sepenuhnya klasik, tetapi berbeda dengan driver terpaket secara klasik, keduanya tidak bergantung pada distribusi OS. Anda membuat Snap driver printer dan bekerja pada semua distribusi OS yang menjalankan snap, tidak perlu mengemas driver printer untuk setiap distribusi (dan versinya) secara independen dan mengalami ketergantungan. Keuntungan lainnya adalah konsep lama file PPD yang berasal dari printer PostScript dihentikan. Selain itu, dengan menghubungkan sistem CUPS dan driver printer dengan koneksi IP, bukan melepaskan file ke sistem CUPS, baik sistem CUPS maupun Aplikasi Printer dapat berada dalam paket yang di-sandbox secara terpisah.

Tugas saya adalah menjelaskan cara merancang {i>driver <i}untuk {i>printer<i} dan pemindai untuk bentuk kemasan ini dan cara mengemasnya ke dalam Snap. Tujuannya adalah untuk membantu siapa saja yang menulis driver printer atau pemindai, terutama produsen hardware, pada masa mendatang agar dapat melakukannya dengan cara yang benar.

Alur kerja Aplikasi Printer dapat diringkas dengan diagram alir yang diberikan:

Dasar untuk membuat Aplikasi Printer/Pemindai adalah PAPPL, library yang menyediakan sebagian besar fungsi untuk aplikasi ini, serta filter cangkir yang berisi kode yang akan digunakan untuk Aplikasi Printer. Konsep ini masih dalam pengembangan, terutama dalam Google Summer of Code tahun ini, tetapi pada 14 September, ketika periode penulisan dokumentasi dimulai, periode pengkodean GSoC telah berakhir dan inilah saatnya OpenPrinting memerlukan tutorial.

Template untuk Driver Printer Menentukan Struktur untuk Data TUGAS

Mendeklarasikan Array Konstanta untuk Ukuran Media

Mendeklarasikan fungsi i) Callback atau init Fungsi boolean yang menerima nama driver, data driver, dll. serta menetapkan atribut driver yang sesuai. Jika detail yang diberikan sesuai, nilai benar dan salah akan ditampilkan jika gagal.

ii) cetak fungsi Boolean menerima tugas, opsi untuk tugas itu dan perangkat. Fungsi ini mencetak file dan menampilkan nilai benar jika berhasil dan salah jika gagal.

iii) fungsi Boolean rendjob yang menerima tugas, opsi untuk tugas itu, dan perangkat. Fungsi ini mengakhiri tugas dan menampilkan nilai benar (true) jika berhasil dan salah (false) jika gagal.

iv) fungsi Boolean rendpage menerima tugas, opsi untuk tugas tersebut, perangkat, dan nomor halaman. Mengakhiri halaman dan menampilkan nilai benar jika berhasil dan salah jika gagal.

v) rstartjob fungsi Boolean menerima tugas, opsi untuk tugas itu dan perangkat. Fungsi ini memulai tugas dan menampilkan nilai benar jika berhasil dan salah jika gagal.

vi) rstartpage fungsi Boolean menerima tugas, opsi untuk tugas, perangkat, dan nomor halaman. Parameter ini akan memulai halaman dan menampilkan nilai benar jika berhasil dan salah jika gagal.

vii) rwrite fungsi Boolean menerima tugas, pilihan untuk tugas, perangkat, nomor baris dan himpunan karakter. Fungsi ini menulis baris dan menampilkan nilai benar jika berhasil dan salah jika gagal. viii) fungsi opsional seperti mengidentifikasi (membantu mengidentifikasi printer berdasarkan tindakan yang diberikan), mengompresi(Mengompresi garis grafik), dll