Projekt Linux Foundation

Ta strona zawiera szczegółowe informacje na temat projektu dotyczącego pisania technicznego zaakceptowanego do udziału w sezonie Dokumentów Google.

Podsumowanie projektu

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

Opis projektu

Przegląd

Klasyczne sterowniki drukarek zawierające filtry specyficzne dla drukarki oraz plik PPD (Postscript PrinterDescription, opisujące funkcje drukarki i filtry do wywołania), które muszą być porzucone 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ą odpytywać o ich możliwości za pomocą żądań IPP, a w przypadku zadań drukowania używają standardowych formatów danych. Drukarki, które nie oferują tej funkcji, zwykle starsze lub specjalistyczne wymagają sterownika.

Aplikacja drukarki to demon, który wykrywa obsługiwane drukarki i reklamuje je na hoście lokalnym jako drukarki IPP Everywhere. Aplikacje do obsługi drukarek zawierają oprogramowanie umożliwiające drukowanie zadań przychodzących na obsługiwanych drukarkach, konwertując dane na ich język ojczysty i przekazując klientom informacje o możliwościach drukarki. Ma nawet interfejs administracyjny, np. drukarkę sieciową.

Wiemy, że Linux przechodzi na tryb piaskownicy (np. Snap), a drukowanie również idzie w tym kierunku. Po utworzeniu pakietu w trybie piaskownicy nie można modyfikować zawartości katalogu. 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 modułowych rozwiązań i dają taką samą swobodę jak w przypadku sterowników drukarek.

Sterowniki drukarek i skanerów w Snapchacie są niezbędne nie tylko w przypadku Snap-Snap, i aplikacji snap, ale także w całkowicie klasycznych systemach. W przeciwieństwie do standardowych pakietów 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 wyniku Snapchata. Nie trzeba pakować sterowników drukarek dla każdej dystrybucji (i jej wersji) niezależnie od siebie i utrudniać uzależnienie. Kolejną zaletą jest wycofanie starej koncepcji plików PPD pochodzących z drukarek PostScript. Dodatkowo dzięki połączeniu systemu CUPS ze sterownikiem drukarki za pomocą połączenia IP, zamiast upuszczania plików w systemie CUPS, system CUPS i aplikacja drukarki mogą znajdować się w osobnych pakietach w trybie piaskownicy.

Moim zadaniem będzie opisanie, jak zaprojektować sterowniki drukarek i skanerów dla tej formy opakowania oraz jak spakować je do Snapsa. Chcemy pomóc każdemu, kto tworzy sterowniki drukarek lub skanerów, a zwłaszcza producentom sprzętu, w sprawnym wykonywaniu takich zadań w odpowiedni sposób.

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

Podstawą do tworzenia takich aplikacji jest biblioteka PAPPL, czyli biblioteka zapewniająca większość funkcji, ale także filtry do kubków zawierające kod do stosowania w aplikacjach drukarek. Cały czas pracujemy nad tą koncepcją, głównie podczas tegorocznego Google Summer of Code, ale 14 września, kiedy rozpoczął się okres tworzenia dokumentacji, okres kodowania w GSoC już się zakończył i właśnie dlatego OpenPrinting potrzebuje samouczka.

Szablon dla sterowników drukarek Definiowanie struktury danych JOB

Zadeklaruj tablicę stałych dla rozmiarów multimediów

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

ii) drukuj Funkcja logiczna akceptująca zadanie, opcje zadania i urządzenia. Drukuje plik i zwraca wartość „true” (prawda) w przypadku powodzenia i „false” (fałsz) w przypadku niepowodzenia.

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

iv) rendpage Funkcja logiczna akceptująca zadanie, opcje zadania, urządzenie i numer strony. Kończy się stronę 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 lub „fałsz” w przypadku niepowodzenia.

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

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