PHP stil baskı switcher sorun revisited?

1 Cevap php

Tamam ben stil bağlantısından media="print" dışarı bırakırsanız sadece olacak çalışır bu stil switcher var.

Ben media="print" niteliğini dışarı çıkmadan bu sorunu çözebilirsiniz nasıl merak ediyordum.

Burada PHP kodudur.

<!-- Print Script -->
<?php if (isset($_GET['css']) && $_GET['css'] == 'print') { ?>
<meta name="robots" content="noindex" />
<link rel="stylesheet" type="text/css" href="http://localhost/styles/print.css" media="print" />
<script type="text/javascript">
//<![CDATA[
if(window.print())
  onload = window.print();
else
  onload = window.print;
//]]>
</script> 
<?php } else { ?>
<link rel="stylesheet" type="text/css" href="http://localhost/styles/style.css" media="screen" />
<?php } ?>
<!-- End Print Script -->

Ve burada stil sayfasını değiştirmek için tıklayın link.

<a href="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>?css=print" id="print-page" title="Print">Print This Page</a>

1 Cevap

Sen edip baskı çıktısı için CSS dosyasını belirlemek için PHP kodu gerekmez. Varsayılan tarayıcı "print" stil hale olmayacak ve yazdırırken "ekran" stil göz ardı edilmelidir.

Bazı render sorunlar olabilir: belki tarayıcı sayfasını oluşturmak ve yazıcıya doğru beslemek için yeterli zamanı olmamıştır.

Basitleştirilmiş bir çözüm olacaktır:

<head>
<link rel="stylesheet" type="text/css" href="http://localhost/styles/print.css" media="print" />
<link rel="stylesheet" type="text/css" href="http://localhost/styles/style.css" media="screen" />
<script type="text/javascript">
function print_it() {
if(window.print())
  onload = window.print();
else
  onload = window.print; 
}
</script>
</head>

<body>
<a href="javascript:print_it();" id="print-page" title="Print">Print This Page</a>
</body>