Je možné z webové aplikace tisknout štítky nebo vstupenky?

Webová aplikace může tisknout také nestandardní tiskové sestavy jako různé etikety, štítky, či vstupenky a není důvod ji kvůli požadavkům na tisk nahrazovat desktopovým řešením a připravit se tak o další výhody při jejím použití …

Je možné z webové aplikace tisknout štítky nebo vstupenky?

Tisk z webové aplikace

Při návrhu informačního systému často místo webové aplikace volíme desktopové řešení z důvodu pokročilých požadavků na tisk. Přitom je možné z webové aplikace plnohodnotně tisknout také speciální tiskové sestavy na různé nestandardní formáty pomocí speciálních tiskáren. Jen je někdy potřeba použít technologie, které nám otevřou další možnosti tisku z webové aplikace.

Běžné A4 tiskové sestavy se často tisknou z webové aplikace pouze pomocí tisku přímo z webového prohlížeče. Tento způsob tisku ale může být problematický a to zejména u tisku různých nestandardních tiskových sestav. Může to být například tisk vstupenek, etiket, samolepících štítků na štítkové tiskárně, nebo tisk dokumentů na předpřipravené formuláře jako daňové přiznání, podací či dobírkový lístek na poštu nebo různé nalepovací štítky ze skladových a logistických informačních systémů, případně potisk čipových karet pro docházkový systém a další. U všech těchto sestav je důležité, aby byla tisková sestava dobře vyladěna a aby se jednotlivé prvky sestavy tiskli správně, ve správné velikosti a rozlišení a na správném místě. Tento požadavek se ale při tisku z webové aplikace (kdy vlastně prostřednictvím webového prohlížeče tiskneme webovou stránku) někdy těžko realizuje a jeho realizace je těžko udržitelná.

Tisk z webové aplikace přes webový prohlížeč

Často je při implementaci webových aplikací otázka tisku ponechána pouze na webový prohlížeč. Když uživatel přistoupí na nějakou akci (URL adresu) webové aplikace, je v HTTP odpovědi vráceno přímo HTML, které se v prohlížeči interpretuje a vznikne tisková sestava. Uživatel pak přímo v prohlížeči klikne na možnost tisku webové stránky a ta se vytiskne na vybrané tiskárně klasickým způsobem za pomocí funkcí operačního systému.

  • Tento způsob je jednoduchý na implementaci, vlastně není potřeba implementovat nic navíc. Pouze se ve webové aplikaci připraví tisková sestava.
  • Tento tisk se hodí spíš pro tisk dokumentů určených pro standardní formát papíru (často A4) na standardních kancelářských tiskárnách, kdy nám až tak moc nezáleží na přesnosti, umístění a rozměrech tisknutých prvků. Tisk je závislý na prohlížeči a žádný tvůrce webové aplikace nedokáže garantovat jednotné chování ve všech prohlížečích a ve všech verzích prohlížeče. S aktualizací prohlížeče se může stát (velmi často se stává), že se lehce změní vzhled dokumentu a tedy to, jak prohlížeč renderuje tisknuté HTML.
    Této závislosti se lze částečně zbavit použitím formátu PDF, do kterého se vygeneruje dokument na straně serveru. PDF je univerzální formát dokumentu, který se pak vytiskne stejně bez ohledu na softwarové vybavení na straně klienta. Generování PDF bude závislé na softwarové knihovně použité na straně serveru přímo ve webové aplikaci a může jej ovlivňovat tvůrce webové aplikace. Při tisku PDF ale můžou být vyžadovány kromě tiskového dialogu ještě další akce uživatele (otevření PDF může vyžadovat kromě prohlížeče další aplikaci). To může být v provozech, kde nám jde také o rychlost, nevhodné.
  • Další nevýhodou může být, že je nutné při tisku potvrzovat tiskový dialog (v prohlížeči, případně přímo v operačním systému), co zdržuje uživatele v provozech s důrazem na rychlost a navíc to může vést k dalším chybám uživatele. Toto chování lze omezit použitím nějakého existujícího rozšíření prohlížeče (například JSPrintSetup pro Firefox). Webová aplikace se pak stane ale závislá také na tomto dalším systému třetí strany (nebo lépe čtvrté?). Pak se může stát, že vyjde nová zpětně nekompatibilní verze prohlížeče a autor toto rozšíření neupraví pro tuto verzi (jako tomu bylo u zmíněného JSPrintSetup). Použití rozšíření do prohlížeče také zavádí další požadavky na software na klientské straně.

Tisk z webové aplikace na klientské straně

Z pohledu udržitelnosti kvality tisku (ve významu sestavení dokumentu k tisku) je nejvýhodnější obejít tisk přes webový prohlížeč, případně PDF a tisknout přímo na klientském PC přes vlastní prvek (aplikaci / program / skript) používající SDK od výrobce tiskárny. Protože jsme v prostředí webu, je výhodné to řešit vytvořením a zavedením nového protokolu v operačním systému, případně vytvořením vlastního doplňku pro webový prohlížeč. Pak, když uživatel přistoupí na nějakou akci (URL adresu) webové aplikace, spustí se tento prvek (aplikace / program /skript) v prostředí uživatelského PC. Webová aplikace mu předá parametry (tisková data) a za pomocí SDK od výrobce tiskárny prvek vytiskne nadefinovanou tiskovou sestavu.

  • U tohoto způsobu tisku je nejlepší kvalita tisku a také je nejlépe udržitelná. Řešení je úplně bez závislosti tisku na webovém prohlížeči a bez ohledu na jeho interpretaci HTML vždy tiskneme stejnou tiskovou sestavu. V tomto ohledu se řešení kvalitou a provedením tisku vyrovná desktopové aplikaci (jakou prvek, který na straně klienta tiskne, vlastně je).
  • Toto řešení zavádí další požadavky na klientský software. Webová aplikace jako taková vyžaduje na klientské straně pouze webový prohlížeč a ten je standardní součástí téměř každého klientského PC. Pokud bychom zvolili řešení pomocí protokolu operačního systému, omezili bychom uživatele na použití pouze toho operačního systému, pro který bychom protokol vytvořili, případně bychom jich museli vytvořit více pro každý OS. To samé platí v případě použití doplňku do webového prohlížeče. Buď bychom vyžadovali konkrétní prohlížeč, nebo bychom museli implementovat doplňků více. Také u obou řešení musí být to dané řešení nainstalováno na uživatelském PC (to může být problematické, pokud uživatelské PC nejsou pod správou provozovatele webové aplikace).
  • Řešení je omezeno tím jaké a jestli vůbec výrobce tiskárny poskytne SDK k použité tiskárně. Ne ke všem tiskárnám výrobce poskytuje SDK a také může poskytnout SDK pouze pro některé programovací jazyky. Ne každá tiskárna může umožňovat takto tisknout a je potřeba tedy vybrat vhodnou tiskárnu, se kterou lze toto řešení implementovat.
  • Tento způsob je komplikovanější na implementaci a ne každý dodavatel webové aplikace může mít v portfoliu také tvorbu podobných aplikací.

Tisk z webové aplikace na serveru

Toto řešení uvádím pouze jako teoretické. Spočívá v tom, že uživatel, který používá webovou aplikaci, dá sice prostřednictvím webové aplikace pokyn k tisku, ale tiskárna bude připojena k serveru a tisknout se bude přímo na serveru, kde běží webová aplikace za použití SDK od výrobce tiskárny. Možná by se mohlo hodit v určitých případech, kdy by byla malá fyzická vzdálenost mezi serverem s webovou aplikací a klientem. Například v jedné výrobní hale by bylo umístěno 10 pracovišť, kde by prostřednictvím webových prohlížečů uživatelé používali webovou aplikaci umístěnou na serveru, který by byl fyzicky v té samé hale a byla by k němu připojena třeba tiskárna štítků. Toto řešení je ale velmi nestandardní a pokud to je možné, vyhnul bych se mu.

Možnosti pro tisk z webové aplikace je více a závisí na konkrétním použití. Pokud budete tisknout pouze jednoduché sestavy na standardní formát, je nejjednodušší nechat to na prohlížeči. Pokud ale zvažujete nestandardní formáty nebo tiskárny, je optimální řešení implementovat nějaký doplňkový prvek v podobě aplikace, programu, nebo skriptu pro klienta.

Potřebujete tisknout nestandardní sestavy z webové aplikace?

Vyvíjím informační systémy a webové aplikace na míru. Kontaktujte mě a zeptejte se, jak Vám mohu pomoci s realizací Vaší webové aplikace, která bude tisknout nestandardní tiskové sestavy …

Michal Strelec, 23. února 2021

Další podobné články

Vývoj webové aplikace na míru

Vývoj webové aplikace na míru

Jmenuji se Michal Strelec, jsem zkušený softwarový inženýr na volné noze a věnuji se vývoji webových aplikací na míru, jejích provozu a podpoře. Zjistěte, jak Vám pomůžu s Vaším projektem …

Jaké výhody nabízí použití webové aplikace?

Jaké výhody nabízí použití webové aplikace?

Pro implementaci každého informačního systému se může lépe hodit jiný typ aplikace. Porovnejme proto z různých pohledů použití webové aplikace a její náhradu v podobě desktopového řešení …

Je možné propojit Excel s ERP systémem přes API?

Je možné propojit Excel s ERP systémem přes API?

Technicky to určitě možné je. Pokud ale řešíte tuhle otázku, nejspíš bude dobré když ještě jednou zvážíte návrh architektury celého systému …

Informační systém nejen pro sledování zásilek

Informační systém nejen pro sledování zásilek

Zákazníci firmy Gama Logistics můžou pomocí nového informačního systému vyvinutého na míru kdykoliv online sledovat stav doručování svých zásilek. Systém GamaLogIS ale nabízí i další chytré funkce …

Co je to API?

Co je to API?

Na API typicky narazíte pokud potřebujete propojit dva různé informační systémy nebo aplikace tak, aby spolu komunikovali a vyměňovali si navzájem data …