Dự án Linux Foundation

Trang này chứa thông tin chi tiết về một dự án viết kỹ thuật được chấp nhận cho Phần Google Tài liệu.

Tóm tắt dự án

Tổ chức nguồn mở:
Nền tảng Linux
Người viết nội dung kỹ thuật:
PIYUSHgoyal16
Tên dự án:
Hướng dẫn và nguyên tắc thiết kế cho trình điều khiển máy in/máy quét trong các ứng dụng máy in
Thời lượng dự án:
Thời gian tiêu chuẩn (3 tháng)

Mô tả dự án

Tổng quan

Trình điều khiển máy in cổ điển bao gồm các bộ lọc dành riêng cho máy in và PPD (Mô tả máy in Postscript, mô tả các chức năng của máy in và các bộ lọc cần gọi) các tệp phải thả vào một số thư mục nhất định của hệ thống tệp được thay thế bằng ứng dụng có tên là Ứng dụng máy in, mô phỏng máy in mạng IPP.

Hầu hết các máy in đa năng hiện đại là máy in IPP cho phép in không cần trình điều khiển. Họ có thể tự quảng cáo qua DNS-SD, máy khách có thể thăm dò thông tin về khả năng của họ thông qua yêu cầu IPP và sử dụng các định dạng dữ liệu tiêu chuẩn cho các lệnh in. Các máy in không cung cấp chức năng này, thường thì các máy in cũ hoặc chuyên dụng cần có trình điều khiển máy in.

Ứng dụng máy in là một trình nền giúp phát hiện các máy in được hỗ trợ và quảng cáo các máy in đó trên máy chủ cục bộ dưới dạng máy in IPP Everywhere. Ứng dụng máy in chứa phần mềm để in các lệnh đến trên(các) máy in mà ứng dụng này hỗ trợ, chuyển đổi dữ liệu sang ngôn ngữ gốc của máy in và cung cấp thông tin về chức năng của máy in cho ứng dụng khách theo yêu cầu. Ứng dụng máy in thậm chí còn có giao diện quản trị web, giống như một máy in mạng thực tế.

Như chúng ta đã biết, Linux đang chuyển sang bao bì dạng hộp cát (ví dụ như Snap) và hoạt động in cũng đang đi theo hướng đó. Trong gói hộp cát, chúng ta không thể sửa đổi nội dung thư mục sau khi tạo. Hệ thống của chúng tôi không còn là mô-đun nữa. Chúng tôi không thể chọn gói trình điều khiển máy in để cài đặt. Ứng dụng Máy in giải quyết vấn đề về mô-đun này và mang lại cho chúng tôi sự tự do tương tự như trong trường hợp trình điều khiển máy in.

Trình điều khiển máy in và máy quét trong Snaps không chỉ là yêu cầu đối với CUPS và ứng dụng đã chụp nhanh, chúng còn hoạt động trên các hệ thống hoàn toàn cổ điển, mà trái ngược với các trình điều khiển đóng gói theo cách cổ điển, chúng không phụ thuộc vào phân phối hệ điều hành. Bạn tạo trình điều khiển máy in Snap và trình điều khiển này hoạt động trên tất cả các bản phân phối hệ điều hành chạy nhanh, không cần phải đóng gói trình điều khiển máy in cho từng bản phân phối (và phiên bản của chúng) một cách độc lập và gặp địa chỉ phụ thuộc. Ưu điểm khác là khái niệm cũ về tệp PPD tạo ra từ máy in PostScript đã ngừng hoạt động. Ngoài ra, bằng cách ghép nối hệ thống CUPS và trình điều khiển máy in bằng kết nối IP thay vì thả tệp vào hệ thống CUPS, cả hệ thống CUPS và Ứng dụng máy in đều có thể nằm trong các gói hộp cát riêng biệt.

Nhiệm vụ của tôi là mô tả cách thiết kế trình điều khiển cho máy in và máy quét cho hình thức đóng gói này, cũng như cách đóng gói chúng vào Snaps. Mục đích của thiết bị này là giúp tất cả những người viết trình điều khiển máy in hoặc máy quét, đặc biệt là các nhà sản xuất phần cứng, trong tương lai thực hiện việc này đúng cách.

Có thể tóm tắt quy trình công việc của Ứng dụng máy in bằng sơ đồ quy trình đã cho:

Cơ sở để tạo các Ứng dụng máy in/máy quét như vậy là PAPPL, một thư viện cung cấp hầu hết các chức năng cho việc này, ngoài ra còn có các cốc-lọc chứa mã được sử dụng cho Ứng dụng máy in. Khái niệm này vẫn đang được phát triển, chủ yếu là trong Google Summer of Code năm nay, nhưng vào ngày 14 tháng 9, khi giai đoạn viết tài liệu bắt đầu, giai đoạn lập trình của GSoC đã kết thúc và đây là thời điểm OpenPrinting cần hướng dẫn.

Mẫu trình điều khiển máy in xác định cấu trúc cho dữ liệu CÔNG VIỆC

Khai báo mảng hằng số cho kích thước nội dung đa phương tiện

Khai báo hàm i) Gọi lại hoặc khởi tạo Hàm boolean chấp nhận tên trình điều khiển, dữ liệu trình điều khiển, v.v. và đặt thuộc tính trình điều khiển tương ứng. Nếu các thông tin đã cung cấp là phù hợp, hàm này sẽ trả về giá trị true và false khi không thành công.

ii) in hàm Boolean chấp nhận lệnh, các tuỳ chọn cho lệnh và thiết bị. Phương thức này in một tệp và trả về giá trị true khi thành công và trả về false khi không thành công.

iii) rendjob Hàm Boolean chấp nhận công việc, các lựa chọn cho công việc và thiết bị. Hàm này kết thúc công việc và trả về giá trị true khi thành công và trả về false khi thất bại.

iv) trang kết nối Hàm Boolean chấp nhận công việc, tuỳ chọn cho công việc, thiết bị và số trang. Phương thức này kết thúc trang và trả về giá trị true khi thành công và trả về false khi không thành công.

v) rstartjob Hàm Boolean chấp nhận công việc, các tuỳ chọn cho công việc và thiết bị. Nó bắt đầu công việc và trả về true khi thành công và trả về false khi thất bại.

vi) rstartpage Hàm Boolean chấp nhận công việc, tuỳ chọn cho công việc, thiết bị và số trang. Phương thức này bắt đầu trang và trả về giá trị true khi thành công và trả về false khi không thành công.

vii) ghi lại Hàm Boolean chấp nhận công việc, các tuỳ chọn cho công việc, thiết bị, số dòng và mảng ký tự. Lệnh này ghi dòng và trả về giá trị true (đúng) khi thành công và trả về giá trị false (sai) khi không thành công. viii) các chức năng không bắt buộc như xác định (giúp nhận dạng máy in dựa trên thao tác được cung cấp), nén (nén một dòng đồ hoạ), v.v.