20.10.2014 18:50
1
Dobrý večer,
dá se nějak změnit obsah webu po vyvolání tisku (CTR+P). Ještě třeba provést jquery load(). Nerad bych to řešil přes neviditelný obsah zobrazený tiskovým css.

Existuje nějaké řešení?

Děkuju
21.10.2014 02:55
3
Staci pridat v CSS specialni sekce z popisem stilu pro print verse:
Kód:
@media print {
 p {
    color: #000;
    font-size: 12px;
}
....
}
vzor: http://www.w3schools.com/css/tryit.asp?filename=trycss_media
21.10.2014 14:01
4
Původně odeslal softwarrior
Staci pridat v CSS specialni sekce z popisem stilu pro print verse:
Kód:
@media print {
 p {
    color: #000;
    font-size: 12px;
}
....
}
vzor: http://www.w3schools.com/css/tryit.asp?filename=trycss_media
Ano, to vím. Ale přijde mi "hnusné" to mít skryté (display:none). Chtěl bych to tam dostat přes js až ve chvílí tisku,
21.10.2014 14:28
5
Ano, ale to je standard pro print media, JS dela stejnu vec, to je vase rozhodnuti, jak vyresit.
21.10.2014 18:10
6
Původně odeslal softwarrior
Ano, ale to je standard pro print media, JS dela stejnu vec, to je vase rozhodnuti, jak vyresit.
No js nemusí dělat stejnou věc. Pokud existuje onbeforeprint , jak píše
czmarci, tak může, před tiskem, ajaxově načíst data pro tisk a nemusí mít nic skryté přes css. Možná po tisku to pak bude potřeba skrýt, ale furt je to rozdíl.
21.10.2014 18:24
7
Kdyz planujes delat ajax dotaz, tak muzes otevrit uplne novu stranku:

Kód:
var windowUrl = 'http://bla-bla.com/neco-pro-tisk';

var windowName = 'Print Report';

var printWindow = window.open(windowUrl, windowName, 'width=800');

printWindow.document.close();
printWindow.focus();
printWindow.print();
22.10.2014 23:43
8
Původně odeslal Jan Matoušek
No js nemusí dělat stejnou věc. Pokud existuje onbeforeprint , jak píše
czmarci, tak může, před tiskem, ajaxově načíst data pro tisk a nemusí mít nic skryté přes css. Možná po tisku to pak bude potřeba skrýt, ale furt je to rozdíl.
.
Děkuju, Toho jsem si nevšiml. Ale pokud se nemýlím, nepodporuje to Google Chrome http://www.w3schools.com/tags/ev_onbeforeprint.asp ...
22.10.2014 23:51
9
Děkuju, Toho jsem si nevšiml. Ale pokud se nemýlím, nepodporuje to Google Chrome
Koukám že spíše opera by mohla být problém, řešení níže by mělo fungovat na IE, FF, Chrome a Safari.

Cituji: If you combine the two approaches you can detect print requests in IE 5+, Firefox 6+, Chrome 9+, and Safari 5.1+ (unfortunately Opera doesn’t support either approach).

Kód:
(function() {
    var beforePrint = function() {
        console.log('Functionality to run before printing.');
    };
    var afterPrint = function() {
        console.log('Functionality to run after printing');
    };

    if (window.matchMedia) {
        var mediaQueryList = window.matchMedia('print');
        mediaQueryList.addListener(function(mql) {
            if (mql.matches) {
                beforePrint();
            } else {
                afterPrint();
            }
        });
    }

    window.onbeforeprint = beforePrint;
    window.onafterprint = afterPrint;
}());