Autor Zpráva
petey
Profil
Ahoj všem, potřeboval bych poradit s window:print.

Rád bych vytvořil odkaz, který vyvolá tisk určité stránky aniž by ji pro uživatele viditelně otvíral. Zkrátka jen vyvolat nabídku tisku odkazované stránky a zůstat na stávající. Nápady na provedení?
Luky
Profil
Prohlížeče tisknou vždy jen aktuálně zobrazené stránky (nevytiskne nic za uživatelovými zády). Tvé řešení je nejideálnější udělat tak, že odkážeš na stránku kterou chceš vytisknout (do nového okna) stránku připravit třeba jako onload print a po skončení akce okno zavřít. Žádný jiný normální způsob mě nenapadá. Ale uživatel by měl vždy vidět co tiskne.
_es
Profil
petey:
odkaz, který vyvolá tisk určité stránky aniž by ji pro uživatele viditelně otvíral.
Nezdá sa mi nápad, že si mám niečo vytlačiť a neviem, čo to je. Na to, aby sa stránka mohla vytlačiť, musí byť v prehliadači nejako načítaná. Možno by sa to nejako dalo cez skrytý či zakrytý iframe.
petey
Profil
_es:
Je to účelné. Jde o intranetovou aplikaci, která má za úkol ze servisní karty vytisknout protokol zákazníkovi a štítek na servisované zařízení - data se vyplňují automaticky a uživatel tam již nic nemění Proto tedy ta snaha o vynechání "zbytečného" kroku.

Luky:
Podobně už to mám (target="_blank" u odkazu a <body onLoad="javascript:printPage();"> v otevřeném okně). Jen bych potřeboval pomoct s JS. Četl jsem na diskuzích, že je nutné otevírat stránku javascriptem.
Nyní mám v otevřené stránce script:
    
<script>
    function printPage()
    {
    window.print()
    }window.onAfterPrint=window.Close()
</script>
Avšak po tisku se neuzavře. Jak tedy na otevření, aby tohle fungovalo?

Nějakou hrubou funkci jsem ťuknul jsem: www.robertnovak.cz
_es
Profil
petey:
Však vyskúšaj postup s tým iframe. Do iframe môžeš načítať stránku aj obyčajným odkazom, stačí mať rovnaké name v iframe a target v odkaze, alebo aj v JS - netreba stránku načítať do celého okna, aby sa dala tlačiť. Udalosť onAfterPrint v niektorých prehliadačoch nefunguje: developer.mozilla.org/en-US/docs/DOM/window.onafterprint

ze servisní karty vytisknout protokol zákazníkovi a štítek na servisované zařízení
Nebude na takýto účel vadiť, že rôzne prehliadače okolo vytlačeného textu vkladajú rôzne hlavičky ako adresa stránky, dátum a čas, title stránky a pod.? Okrem toho sa to dá v prehliadačoch aj inak nastaviť.
Luky
Profil
Mohl jsem to trochu upřesnit. Jak říká _es onAfterPrint funguje jen v IE a ve Firefoxu.
Pokud umíš v jQuery, tak vhodné řešení je zde: http://stackoverflow.com/questions/9893888/using-onafterprint-in-chrome-safari
Funkce printIt je zavolána po vytisknutí (nebo zrušení) tisku.

Ale rozhodně se ti nikdy nepovede tisknout nic za uživatelovými zády. Vždy bude nejdříve dotázán jak a jestli vůbec chce dokument tisknout.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0