很多新聞和資訊網站都提供了一種產生便於列印的網頁的方法,所產生的頁面的排版布局更有利於印表機的列印輸出,這種方法方便了我們從網頁上直接列印我們所需的內容,而不必為格式不規整傷腦筋,或者粘貼到文字編輯器中重新排版。然而,我卻沒看到有多少網站詳細解釋這些是如何?的,在這裡我提供一小段代碼——用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)