Drukuj bezpośrednio do drukarki

Inteligentna drukarka Dell S5830dn

Zdjęcie dzięki uprzejmości Dell





Jedno z zapytań, które często pojawia się na różnych forach JavaScript, dotyczy sposobu wysłania strony bezpośrednio do drukarki bez wcześniejszego wyświetlania okno dialogowe drukowania .

Zamiast po prostu powiedzieć ci, że nie da się tego zrobić być może bardziej przydatne byłoby wyjaśnienie, dlaczego taka opcja nie jest możliwa.



Które okno dialogowe drukowania wyświetla się, gdy ktoś naciśnie przycisk drukowania w swojej przeglądarce lub Javascript okno.drukuj() uruchamianie metody zależy od systemu operacyjnego i drukarek zainstalowanych na komputerze.

Ponieważ większość ludzi korzysta z systemu Windows na swoim komputerze, najpierw opiszmy, jak działa konfiguracja drukowania w tym systemie operacyjnym. Systemy operacyjne *nix i Mac różnią się nieznacznie w szczegółach, ale ogólnie są skonfigurowane podobnie.



Okno dialogowe drukowania

Okno dialogowe drukowania w systemie Windows składa się z dwóch części. Pierwszy z nich jest częścią Windows API (interfejs programowania aplikacji). API to zestaw wspólnych fragmentów kodu, które są przechowywane w różnych bibliotekach DLL ( Biblioteka linków dynamicznych ) pliki będące częścią systemu Windows system operacyjny . Każdy program systemu Windows może (i powinien) wywołać interfejs API w celu wykonania typowych funkcji, takich jak wyświetlanie okna dialogowego drukowania, aby działał tak samo we wszystkich programach i nie miał różnych opcji w różnych miejscach, tak jak opcja drukowania w systemie DOS dni programu. Interfejs API okna dialogowego drukowania zapewnia również wspólny interfejs, który umożliwia wszystkim programom dostęp do tego samego zestawu sterowników drukarek, a producenci drukarek nie muszą tworzyć oprogramowania sterownika dla swojej drukarki dla każdego programu, który chciał z niego korzystać.

Sterowniki drukarki to druga połowa okna dialogowego drukowania. Istnieje kilka różnych języków, które różne drukarki rozumieją i używają do kontrolowania sposobu drukowania strony (np. PCL5 i Postscript). Sterownik drukarki instruuje interfejs API drukowania, jak przetłumaczyć standardowy wewnętrzny format drukowania, który system operacyjny rozumie, na niestandardowy język znaczników, który rozumie konkretna drukarka. Dostosowuje również opcje wyświetlane w oknie dialogowym Drukuj, aby odzwierciedlić opcje oferowane przez konkretną drukarkę.

Obsługa drukarki

Pojedynczy komputer może nie mieć zainstalowanych drukarek, może mieć jedną drukarkę lokalną, może mieć dostęp do kilku drukarek w sieci, może nawet być skonfigurowany do drukowania w formacie PDF lub wstępnie sformatowanego pliku wydruku. W przypadku zdefiniowania więcej niż jednej „drukarki”, jedna z nich jest określana jako drukarka domyślna, co oznacza, że ​​jest to ta, która wyświetla swoje szczegóły w oknie dialogowym drukowania, gdy pojawia się po raz pierwszy.

System operacyjny śledzi drukarkę domyślną i identyfikuje ją w różnych programach na komputerze. Pozwala to programom na przekazanie dodatkowego parametru do interfejsu API drukowania, nakazując mu drukowanie bezpośrednio na drukarce domyślnej bez wcześniejszego wyświetlania okna dialogowego drukowania. Wiele programów ma dwie różne opcje drukowania — pozycję menu wyświetlającą okno dialogowe drukowania oraz przycisk szybkiego drukowania na pasku narzędzi, który wysyła bezpośrednio do drukarki domyślnej.



Kiedy masz stronę internetową, którą Twoi goście będą drukować, nie masz prawie żadnych informacji o dostępnych drukarkach. Większość drukarek na całym świecie jest skonfigurowana do drukowania na papierze A4, ale nie możesz zagwarantować, że drukarka jest skonfigurowana do tej wartości domyślnej. Jeden kraj Ameryki Północnej używa niestandardowego formatu papieru, który jest krótszy i szerszy niż A4. Większość drukarek jest skonfigurowana do drukowania w trybie pionowym (gdzie węższy kierunek to szerokość, ale niektóre mogą być ustawione w orientacji poziomej, gdzie dłuższy wymiar to szerokość. Oczywiście każda drukarka ma również inne domyślne marginesy u góry , dół i boki strony, zanim właściciele wejdą i zmienią wszystkie ustawienia, aby drukarka była taka, jak chcą.

Biorąc pod uwagę wszystkie te czynniki, nie masz możliwości określenia, czy domyślna drukarka z domyślną konfiguracją wydrukuje Twoją stronę internetową na A3 z pomijalnymi marginesami, czy na A5 z ogromnymi marginesami (pozostawiając niewiele więcej niż obszar wielkości znaczka pocztowego na środku strony). Można przypuszczać, że większość z nich będzie miała obszar zadruku na stronie około 16 cm x 25 cm (plus minus 80%).



Potrzeby drukowania

Ponieważ drukarki bardzo różnią się między potencjalnymi gośćmi (czy ktoś wspomniał o drukarkach laserowych, drukarkach atramentowych, tylko kolorowych lub czarno-białych, jakości fotograficznej, trybie roboczym i wielu innych), nie masz sposobu, aby powiedzieć, co będą musieli zrobić, aby drukować opublikuj swoją stronę w rozsądnym formacie. być może mają osobną drukarkę lub drugi sterownik do tej samej drukarki, który zapewnia zupełnie inne ustawienia specjalnie dla stron internetowych.

Następnie pojawia się kwestia tego, co mogą chcieć wydrukować. Czy chcą mieć całą stronę, czy wybrali tylko część strony, którą chcą wydrukować? Jeśli witryna korzysta z ramek, czy chce wydrukować wszystkie ramki w taki sposób, w jaki wyglądają na stronie, czy każda ramka ma być drukowana osobno, czy może po prostu drukować konkretną ramkę?



Potrzeba odpowiedzi na wszystkie te pytania sprawia, że ​​niemal konieczne jest, aby okno dialogowe drukowania pojawiało się, gdy chcą coś wydrukować, aby mogli upewnić się, że wszystkie ustawienia są prawidłowe, zanim nacisną przycisk drukowania. Większość przeglądarek umożliwia również dodanie przycisku „szybkiego drukowania” do jednego z pasków narzędzi przeglądarki, aby umożliwić wydrukowanie strony na domyślnej drukarce przy użyciu domyślnych ustawień przeglądarki dotyczących tego, co ma być drukowane i jak.

JavaScript

Przeglądarki nie udostępniają tej mnogości ustawień przeglądarki i drukarki dla JavaScript. JavaScript dotyczy przede wszystkim modyfikowania bieżącego Strona internetowa i tak przeglądarki internetowe dostarczają minimalnych informacji o samej przeglądarce i obok żadnych informacji o dostępnym systemie operacyjnym JavaScript ponieważ JavaScript nie musi znać tych rzeczy, aby wykonywać te rzeczy, do których ma on służyć.



Podstawowe zabezpieczenia mówią, że jeśli coś takiego jak Javascript nie musi wiedzieć o systemie operacyjnym i konfiguracji przeglądarki, aby manipulować stroną internetową, to nie powinno być dostarczane z tymi informacjami. To nie jest tak, że JavaScript powinien mieć możliwość zmiany ustawień drukarki na odpowiednie wartości do drukowania bieżącej strony, ponieważ nie do tego służy Javascript - to jest zadanie okna dialogowego drukowania. Dlatego przeglądarki udostępniają JavaScript tylko te rzeczy, które JavaScript musi znać, takie jak rozmiar ekranu, dostępne miejsce w oknie przeglądarki do wyświetlania strony i podobnych rzeczy, które pomagają Javascriptowi ustalić układ strony. Obecna strona internetowa jest jedyną troską Javascript.

Intranet

Intranet to oczywiście zupełnie inna sprawa. Dzięki intranetowi wiesz, że wszyscy dostęp do strony używa określonej przeglądarki (zwykle najnowszej wersji Internet Explorera) i ma określoną rozdzielczość ekranu oraz dostęp do określonych drukarek. Oznacza to, że w intranecie sensowne jest drukowanie bezpośrednio na drukarce bez wyświetlania okna dialogowego drukowania, ponieważ osoba pisząca stronę internetową wie, na której drukarce zostanie ona wydrukowana.

Internet Explorer substytut JavaScript (zwany JScript) ma zatem nieco więcej informacji o przeglądarce i systemie operacyjnym niż sam Javascript. Poszczególne komputery w sieci z intranetem mogą być skonfigurowane tak, aby zezwalały na JScript okno.drukuj() polecenie napisz bezpośrednio do drukarki bez wyświetlania okna drukowania. Ta konfiguracja musiałaby być skonfigurowana indywidualnie na każdym komputerze klienckim i wykracza daleko poza zakres artykułu o JavaScript.

Jeśli chodzi o strony internetowe w Internecie, absolutnie nie ma możliwości skonfigurowania a Polecenie JavaScript wysłać bezpośrednio do drukarki domyślnej. Jeśli odwiedzający chcą to zrobić, będą musieli ustawić własny przycisk „szybkiego drukowania” na pasku narzędzi przeglądarki.