PHP產生便於列印的網頁

來源:互聯網
上載者:User
關鍵字 PHP產生便於列印的網頁
很多新聞和資訊網站都提供了一種產生便於列印的網頁的方法,所產生的頁面的排版布局更有利於印表機的列印輸出,這種方法方便了我們從網頁上直接列印我們所需的內容,而不必為格式不規整傷腦筋,或者粘貼到文字編輯器中重新排版。然而,我卻沒看到有多少網站詳細解釋這些是如何?的,在這裡我提供一小段代碼——用php來實現產生便於列印的網頁並不是像想象的那麼難,希望對大家有協助。

要產生便於列印的網頁,需要我們做哪些工作呢?這主要取決於你的網站特點,和你想要產生的版式特徵,不過有一些基本處理需要完成:

1、  頁寬——產生頁面的寬度必須限制,要列印A4的紙,大約網頁要在630像素寬。
2、  頁面背景色——為了美觀,很多網頁使用了不同的背景色和背景圖片,但是作為要列印的網頁,最合適效果的還是白底黑字為好。
3、  廣告條——移除頁面上的廣告
4、  表格的背景色——我們經常在表格中用顏色來強調資訊和標題,這些也必須移除。
5、  連結——頁面中的超連結也必須改變以使URL可見,例如:GBDirect應顯示為GBDirect (http://www.gbdirect.co.uk/) 
6、  菜單——菜單是最難被禁止的,然而如果你的頁面是使用模板來構建的話,那麼最簡單的方法是換用便於列印的沒有菜單的模板。

這些產生便於列印頁面的所有方法,都是非常簡單的,需要實現的時候你可以被下面的代碼放到網頁中:
//從環境變數中得到檔案的相對路徑
$page=substr($SCRipT_NAME,1);

// 顯示一個表徵圖並串連到PRinter Friendly Pages
// 便於列印頁面的產生程式pfp.php
?>
">;
   alt="Click here to produce a printer friendly page">

 
  Printer Friendly Version
 
  
把當前頁面的名稱傳遞到pfp.php程式中,這個程式使用PHP的“file”函數把頁面作為一個字串來處理。當這個頁面被載入的時候,程式就可以增加、改寫或刪除HTML片段。

ereg('^.*/',$SCRIPT_FILENAME,$tmp);
$page_path = substr($tmp[0],0,-1);
?>




 
 
 Printer Friendly Page




















                       

       // check if the filename for the page exists
    if (!file_exists("$page.inc"))
    {
      echo "Error - The page ".
        "does not exist on this site.
";
    }
    else
    {
     // 得到頁面的內容並把它放到一個字串中
     $fcontents = join('', file("$page.inc"));

     // 忽略顏色屬性,轉換以’ignore’替代’color’
     
     $fcontents = ereg_replace('color','ignore',$fcontents);

     // 去除超連結中的 “_blank”
     $fcontents = ereg_replace('target=\"_blank\"','',$fcontents);

     // 替換標記
     $fcontents = ereg_replace('','',$fcontents);

     // 顯示URL的絕對位址
     $fcontents = ereg_replace(']*>;([^]*)',
     '\\2(\\1)',$fcontents);

     // 把相對連結轉為絕對連結
     $fcontents = ereg_replace(
       ']*>([^]*)',
    "\\2(http://$HTTP_HOST/\\1)";,
       $fcontents);

     // 背景顏色改回白色
     $fcontents = ereg_replace('
     // if any markers left restore link end element
     $fcontents = ereg_replace('','',$fcontents);

     // 輸出頁面
     echo $fcontents;
    }
   ?>
  

   
  

 

 


這樣便於列印的頁面就產生了,希望對大家能有協助。

(譯自PHPBulider/Mark Spink)
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.