Projekt Linux Foundation

Ta strona zawiera szczegółowe informacje na temat projektu technicznego przyjęta do programu Sezon Dokumentów Google.

Podsumowanie projektu

Organizacja open source:
The Linux Foundation
Pisarz techniczny:
PIYUSHgoyal16
Nazwa projektu:
Samouczek i wskazówki projektowe dotyczące sterowników drukarek/skanera w aplikacjach do drukowania
Długość projektu:
Standardowa długość (3 miesiące)

Opis projektu

Opis

Klasyczne sterowniki drukarek składające się z filtrów związanych z drukarką i programu PPD (Postscript Printer Description, opisujące jego możliwości oraz listę filtrów do wywoływania) plików, które muszą zostać usunięte w określonych katalogach systemu plików, są zastępowane tzw. aplikacjami drukarek, emulacją drukarki sieciowej IPP.

Większość nowoczesnych drukarek ogólnych to drukarki IPP, które umożliwiają drukowanie bez użycia sterowników. Reklamują się za pomocą DNS-SD, klienci mogą sprawdzać informacje o możliwościach za pomocą żądań IPP oraz używają standardowych formatów danych na potrzeby zadań drukowania. Drukarki, które nie oferują tej funkcji, zazwyczaj wymagają sterownika.

Aplikacja drukarki to demon, który wykrywa obsługiwane drukarki i reklamuje je na serwerze lokalnym jako drukarki IPP Everywhere. Aplikacje drukarek zawierają oprogramowanie umożliwiające drukowanie zadań przychodzących na obsługiwanych drukarkach, konwertując dane na ich język ojczysty i na żądanie klienta przekazują informacje o jego możliwościach. Aplikacja drukarki ma nawet internetowy interfejs administracyjny, na przykład drukarkę sieciową.

Wiemy, że Linux przechodzi na tryb piaskownicy (np. Snap), a drukowanie zmierza w tym kierunku. W pakiecie działającym w trybie piaskownicy nie można modyfikować zawartości katalogu po jego utworzeniu. Nasz system nie jest już modułowy. Nie można wybrać pakietu sterowników drukarki do zainstalowania. Aplikacje do obsługi drukarek rozwiązują ten problem z modułem i dają taką samą swobodę jak w przypadku sterowników drukarek.

Sterowniki drukarek i skanerów dostępne w Snapchacie są nie tylko wymagane w przypadku snap CUPS i aplikacji Snap, ale działają również w całkowicie klasycznych systemach, ale w przeciwieństwie do standardowych sterowników są one niezależne od dystrybucji systemu operacyjnego. Sterownik drukarki jest Snap. Działa on we wszystkich dystrybucjach systemu operacyjnego, które działają w trybie Snap. Nie ma potrzeby pakowania sterowników drukarek dla każdej dystrybucji (i każdej wersji) osobno, co powoduje powstawanie próżni. Kolejną zaletą jest wycofanie starej koncepcji plików PPD pochodzących z drukarek PostScript. Dodatkowo dzięki połączeniu systemu CUPS i sterownika drukarki za pomocą połączenia IP (zamiast upuszczania plików w systemie CUPS) zarówno system CUPS, jak i aplikacja drukarki mogą znajdować się w osobnych pakietach w trybie piaskownicy.

Moim zadaniem będzie opisanie, jak zaprojektować sterowniki drukarek i skanerów do takich opakowań oraz jak spakować je do Snaps. Chcemy pomóc każdemu, kto tworzy sterowniki drukarek lub skanerów, a zwłaszcza także producentom sprzętu, w sprawnym wykonywaniu takich zadań we właściwy sposób.

Przepływ pracy w aplikacji Drukarka można podsumować za pomocą danego schematu blokowego:

Podstawą do tworzenia takich aplikacji do drukarek/skanera jest PAPPL – biblioteka oferująca większość funkcji, ale także kubki-filtry zawierające kod do stosowania w aplikacjach drukarek. Prace nad tą koncepcją są wciąż w fazie rozwoju, głównie podczas tegorocznej konferencji Google Summer of Code w Google. Jednak 14 września, gdy rozpocznie się okres tworzenia dokumentacji, okres kodowania GSoC już się zakończył i właśnie wtedy Openprinting potrzebuje tego samouczka.

Szablon dla sterowników drukarek Definiowanie struktury danych zadań

Deklarowanie tablicy stałych dla rozmiarów mediów

Zadeklaruj funkcje. i) Wywołanie zwrotne lub inicjowanie Funkcja logiczna, która akceptuje nazwę sterownika, dane kierowcy itd., a następnie ustawia odpowiednie atrybuty kierowcy. Jeśli podane informacje są odpowiednie, funkcja zwraca wartość „true” (prawda) lub „false” (fałsz) w przypadku niepowodzenia.

ii) drukuj Funkcja logiczna przyjmująca zadanie oraz opcje zadania i urządzenia. Wydrukuje plik, a w przypadku powodzenia zwraca wartość prawda i fałsz w przypadku niepowodzenia.

iii) rendjob Funkcja logiczna akceptująca zadanie, opcje zadania i urządzenia. Kończy zadanie i zwraca wartość „true” (prawda) w przypadku powodzenia i „false” (fałsz) w przypadku niepowodzenia.

iv) rendpage Funkcja logiczna akceptująca zadanie, opcje zadania, urządzenie i numer strony. Kończy się strona i zwraca wartość „prawda” w przypadku powodzenia lub „fałsz” w przypadku niepowodzenia.

v) rstartjob Funkcja logiczna akceptująca zadanie, opcje zadania i urządzenia. Uruchamia zadanie i zwraca wartość „prawda” w przypadku powodzenia i fałsz w przypadku niepowodzenia.

vi) rstartpage Funkcja logiczna akceptująca zadanie, opcje zadania, urządzenie i numer strony. Uruchamia stronę i zwraca wartość „true” (prawda) w przypadku powodzenia lub „false” (fałsz) w przypadku niepowodzenia.

vii) rwrite Funkcja logiczna akceptująca zadanie, opcje zadania, urządzenie, numer wiersza i tablica znaków. Zapisuje wiersz i zwraca wartość prawda w przypadku powodzenia lub fałsz w przypadku niepowodzenia. viii) funkcje opcjonalne, takie jak identyfikowanie (pomagają zidentyfikować drukarki na podstawie podanego działania), compress(Kompresja wiersza grafiki) itp.