Kvalitnější tisk obrázků na fakturách
napsal Fakturoid
Od začátku Fakturoid umožňuje všem svým uživatelům, aby si nahráli vlastní logo, které se pak tiskne na faktuře. Nedávno jsme přidali i razítko/podpis. Problém je v tom, že běžný obrázek ve formátu JPG, PNG nebo GIF má rozlišení 72 pixelů na palec (Dot Per Inch), zatímco rozumné tiskové rozlišení začíná řekněme na dvojnásobku. Ve výsledném tisku pak dojde k „rozmazání” obrázku, protože rozeznáváte velké pixely.
Trik
Pro tvorbu PDF používáme jádro WebKit (běží na něm prohlížeče Safari, Chrome a další). WebKit a další moderní jádra mají jednu vlastnost, která se nám velmi hodila: Pokud máte obrázek řekněme v rozměru 420 px × 140 px, ale do kódu stránky zadáte, že jeho rozměry jsou 210 px × 70 px WebKit obrázek do této velikosti „přepočítá”.
Co z toho?
Inu, když vezmeme obrázek ve dvojnásobné velikosti, než ve výsledku necháme vykreslit, zdvojnásobujeme DPI. Heuréka!
Pokud nevěříte, zkuste si vytisknout tuhle stránku.


Co to znamená pro naše uživatele?
Pokud máte v aplikaci uloženo logo a/nebo podpis, doporučujeme vám je nahrát znovu ve větší velikosti – ideální je 420 × 140 px.
Komentáře
Pro některé zvídavé čtenáře doplním, že to není ani tak vlastnost Webkitu, jak by mohlo z článku vyznít, ale tuto fintu lze použít v jakémkoliv prohlížeči. Stačí prostě obrázek „nacpat“ pomocí nastavení rozměrů tagu IMG do poloviční velikosti, než jsou jeho reálné rozměry.
Často se to používá pro zlepšení tisku čárových kódů, QR kódů, ap.
Zmenšení by mělo být vždy přesně v poměru 1:2 nebo 1:4, aby resamplign nešel „přes pixely“, jinak na obrazovce budou nepěkné zubaté okraje.
Zkoušeli jste i větší obrázky? Je to poznat, nebo to už nemá smysl?
@Michal Wiglasz: Rozhodující rozdíl je v tom, jak velký je obrázek uložený ve Fakturoidu (teď nově 420 x 140), protože tím, jak nutíme prohlížeč zmenšit obrázek na 210 x 70 (rozměry, na které to má vykreslit), tak dochází k násobení DPI.
Pokud si uživatel nahraje ještě větší obrázek, my ho na 420 x 70 zmenšíme, ale to nemá vliv na výsledné DPI, protože do prohlížeče to vždy leze v 72 DPI.
Ještě lepší kvalita by tedy mohla být, kdybychom obrázek ukládali v jakémkoli větším rozměru (třeba 630 x 105, 840 x 140 atd…), ale jednak se obáváme, že málokdo má při ruce své logo a podpis v takovém rozměru a druhak už ten přínos není tak velký, jako mezi tím, když teď místo 72 DPI tiskneme nějakých 140.
OT: neuvažujete o tom, že by po schválení faktury zákazníkem chodily emailové notifikace?