Diskuze: Tisk v PHP
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, toto se běžně jednoduše řeší v CSS přes media queries a
uděláš to asi takto:
Někde v jednom společném CSS pro celou stránku přidáš blok, ve kterém
buď vyjmenuješ všechny prvky stránky, které schováš (nastavíš
display: none;) nebo možná ve tvém případě schováš
všechno a vytvoříš si classu print. Tu poté přiřadíš
sekci, která má být vidět při tisku, přičemž třídě class přiřadíš
vlastnost display: block;.
/*Varianta 1*/
@media only print {
header, nav, aside, footer {
display: none;
}
}
/*Varianta 2*/
@media only print {
* {
display: none;
}
.print {
display: block;
}
}
A pak je tedy ještě důležité mít daný CSS soubor se stylem obsahujícím výše uvedené media query naimportovaný jako:
<link type="text/css" rel="stylesheet" href="css/style.css"/>
tedy, aby link s celým CSS stylem neobsahoval atribut media
a v něm třeba nastavenou hodnotu screen, potom by výše
uvedené media query nefungovalo a muselo by být třeba vloženo v samostatném
CSS souboru. Záleží jak to máš udělané.
Moc děkuji. Tento postup sice znám, ale zřejmě nic lepšího není. Když by někoho napadlo nějaké jiné řešení, dejte prosím vědět. Možná se ubírám špatným směrem, ale co z toho vygenerovat pdf a to pak tisknout? Jde mi hlavně o to, aby se výsledný tisk nemusel ořezávat o adresu webu nahoře a page 1 of 1 dole jak tomu je když tisknu html stránku.
Tak nakonec jsem našel řešení pomocí JS. Když by někdo řešil podobný problém, tady je kód:
<div id="printableArea">
<h1>Print me</h1>
</div>
<input type="button" onclick="printDiv('printableArea')" value="print a div!" />
function printDiv(divName) {
var printContents = document.getElementById(divName).innerHTML;
var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents;
window.print();
document.body.innerHTML = originalContents;
}
Ja to resim na jednom webu classou noprint.
Ale pak to mam kostrbate s dalsi class, protoze chci tam mit tlacitko nahled
tisku. Neco schovat, neco ne. A to tlacitko Zpet, aby se pri tisku take
nezobrazilo, kdyby nekdo nahled pouzil pro tisk. Nechtelo se mi nad tim moc
premyslet, no
https://webapp.fpf.slu.cz/…ceni_sql.php?…
Zaskrtni Demo (pokud neni) a klikni zpracuj.
To je super, přesně takhle bych to chtěl mít. Hodil bys mi sem kousek kódu, prosím?
??? Na te strance je uplne cely kod html/css/js. Jinak by ti ji prohlizec
nezobrazil. Ale, jak rikam, mam to nepromyslene. Jenom proste ucelove jsem
rychle potreboval reseni.
Melo by to fungovat tak, ze 'noprint' class neukaze na tiskarne (Firefox - print
preview). Potom by tam mel byt dalsi class pro skryti pres js. A pak je tam
tusim js, ktery zmeni u jednoho style tagu media z print na all. Coz je sice
chytre, ale uplne na prd. Lepsi by bylo pouzit dve ruzne class. Jedna, ktera to
100% pri tisku schova a druhou spesl pro to skryti pro js.
<body>
<div class="noprint"></div>
<body class="print-preview"> // class bych pridal pres js k body
<div class="noprint print-preview-visible"></div>
<style madia=print>
.noprint {display:none;}
</style>
<style madia=screen>
.print-preview .noprint {display:none;}
.print-preview .print-preview-visible {display:block;}
</style>
jo, misto noprint bych pouzil print-hidden, at je to podobne print-preview-visible
Jasně, na stránce jsem na kód koukal, ale není to příliš komfortní, tak děkuji za přiložený výňatek. Zítra to zaimplementuji a hodím ti sem výsledek. Každopádně ještě jednou moc děkuji.
Zobrazeno 10 zpráv z 10.