国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

PHP的FDF文檔支持

瀏覽:4日期:2023-12-31 16:45:31
作者:Uwe Steinmann;;來源:http://www.phpbuilder.com;;譯者:znsoft [email protected] http://www.phpease.com;;譯注:(保留);;作PHP已經有一年多了吧,從3.0到4.0,不能說有多高(我現在也只是大菜鳥,比起何、Hunte,差多了,當然還有別的高手),但也有些經驗。從PHP的火熱;;到現在的平靜, 一路看的多了,聽的也多了,見過的"高手"(會寫留言板,聊天室什么的)也多,靜下來一想:PHP只是一種語言。它自有;;它存在的必要。國內的web開發也只停留在低水平的層次,想當初國外在大力發展asp組件時我們卻只會用asp,PHP也一樣。不過要感謝;;php,它讓我得到了生平的第二份工作(第一份是asp的,當初狠學c/c++,怎么也沒想到吧),當然也通過它認識了不少朋友,Hunte,陳老板,一蛇,;;何志強(雖然至今沒有聯絡,但他的文章讓我受益非),sony,macro,cfr... 為了生計,為了將來的發展,小生將離開PHP界,雖然不愿,;;但也無奈,將拖了很久的一篇文章譯出來作為最后的禮物獻給大家,獻給所有使用PHP&mysql的朋友。如果有學習VC和驅動開發的朋友可以和;;我聯絡,讓我們一起來探討。;;---------------------------------------------------------------;;動機;;WWW上的交互意味著填表、點擊submit按鈕,然后得到一個確定的結果。Html和Http提供一個機制來通過表單很容易地執行這種操作。;;PHP用一種非常便利的方法來支持這種機制,每個輸入域(譯注:表單的輸入框)的值被存貯為一個與輸入域同名的PHP變量。;;一個很相似的機制已經被adobe開發著,但是是為PDF文檔。他們簡單地叫它Acrobat 表單。 從用戶的觀點來看,Html表單和Acrobat表;;單唯一的不同是它們的外觀。前者使用HTML文檔,后者使用PDF文檔來呈現表單。;;要開發WEB界面,Acrobat表單也可以象HTML表單一樣被處理,如果這個表單象HTML表單一樣提供輸入數據。然而,Adobe 已經為表單數;;據提出一個新的格式叫FDF(表單數據格式)。PHP已經包含這種格式的支持。;;用數據生成一個PDF文檔的可能性,如定制它,是Acrobat 表單的附加特性了.用PDF文檔作為表單并且在PHP中用數據生成PDF文檔將在 這篇文章中被描述。你會發現這兩個例了是多么的容易。;;在你開始試這篇文章中的在線例子之前你要安裝Acrobat閱讀器插件或使用Acrobat 4.如果你想在自己的web服務器上測試php腳本你也要安裝PDF工具包并使PHP中的FDF支持生效。;;最后,如果你開發你自己的PDF表單你需要Acrobat Exchange 3.x或Acrobat 4。;;在過去的幾年中,Adobe已經開發出可便攜文檔格式(PDF)并且擴展了它。一種擴展是允許用戶輸入數據并送到服務器中處理的Acrobat;;表單,就象HTML表單。;;這樣的PDF文檔與靜態的PDF文檔很相似,但當你用Acrobat閱讀器看它時,你會發現可編輯的區域。;;就象HTML中一樣有很多輸入域有效,例如 提交和重置按鈕,文本輸入域,檢查框等等.. 創建這樣一個PDF表單需要Acrobat Exchange 3.x或新的Acrobat 4軟件,不幸的是它們只能在windows和MacOS中運行。 兩者都提供一個方式來放置不同的輸入域到一個已存在的PDF文檔中。;;提交按鈕傳送在它被按下時調用的URL屬性。這非常象HTML,但不同的是在數據被傳送到服務器時的格式。;;在按下Submit按鈕時,數據是用一個在URL中可以被觀察的確定格式從HTML表單傳輸。Acrobat表單支持這種格式,還有FDF(表單數據格式);;FDP是一種新格式,需要FDF工具包(當前版本4.0)解釋。如果PHP在編譯時加了FDF支持,它就能解析FDF數據并且用名字存取任何輸入域。;;FDF數據一般被存在PHP的HTTP_RAW_POST_DATA變量中(就象HTML數據存儲在HTTP_POAT_DATA中一樣);;數據的實際賦值是在PHP腳本中完成的,相反的是HTML提交數據是在PHP引擎中被賦值的。;;要想得到一個FDF數據看起來的樣子,這兒是一個例子:(譯注:從網上拷下的原始文件如此,我也看不清亂碼是什么,不過如果放在英文系統中能看清吧);;%FDF-1.2 %懺嫌 1 0 obj << /FDF << /Fields [ << /V (This is just some text for testing)/T (comment)>> ....;;這個僅僅是一個完整記錄的第一部分,但它能明顯地表示出輸入域的注解(譯注:可能是標題吧)和它的值。這兒是測試文本。;;這了讓它更清楚,提供一個簡單的例子。首先,假設我們有一個包含數量,出版者,準備者,日期,注解發行者,發行準備者等域的PDF表單。;;前五個域是文本域,最后兩個域是檢查框(check box)。我們的PHP腳本總會顯示數量、日期、注解域的值,當相應的檢查框選中時才顯示出版者、準備者域的值。;;如果這個框(check box)被選中,它們的值是"On"這是在表單被創建時設置的。當然這個表單也有提交按鈕,在我們的這個例子中它甚至有reset按鈕。;;點擊提交按鈕運行下面的腳本。這個腳本象上面所述的來賦域數據的值。;;<?php;;$fdffp = fopen("test.fdf", "w");;;fwrite($fdffp, $HTTP_RAW_POST_DATA, strlen($HTTP_RAW_POST_DATA));;;fclose($fdffp);;;$fdf = fdf_open("test.fdf");;;$volume = fdf_get_value($fdf, "volume");;;echo "The volume field has the value '<B>$volume</B>'<BR>";;;$date = fdf_get_value($fdf, "date");;;echo "The date field has the value '<B>$date</B>'<BR>";;;$comment = fdf_get_value($fdf, "comment");;;echo "The comment field has the value '<B>$comment</B>'<BR>";;;if(fdf_get_value($fdf, "show_publisher") == "On") {;;$publisher = fdf_get_value($fdf, "publisher");;;echo "The publisher field has the value '<B>$publisher</B>'<BR>";;;} else;;echo "Publisher shall not be shown.<BR>";;;if(fdf_get_value($fdf, "show_preparer") == "On") {;;$preparer = fdf_get_value($fdf, "preparer");;;echo "The preparer field has the value '<B>$preparer</B>'<BR>";;;} else;;echo "Preparer shall not be shown.<BR>";;;fdf_close($fdf);;;?>;;你可以試試這個例子 http://gehtnix.fernuni-hagen.de:8000/testfdf/example1.pdf;;比較實際情況,PDF表單比HTML表單有更好的外觀,這種技術好象沒有確切的優勢。然而,PDF有另一種用處。你可以回顧一下上面的;;過程,并用數據組成一個PDF文檔。;;如果你需要定制PDF文檔中僅需的幾個確定部分,象地址,日期等等。它也可以用于創建完整的PDF文檔,但要用PHP的pdf文檔功能創建混合文檔;;需要很多工作。;;例如在通常情況下,它也值得用于設計者創建準備文檔(譯注:可能是草稿吧)。用PHP中的PDF文檔功能創建PDF表單(譯注:不是fdf文檔)幾乎不可能的。;;在FDF中用數據組成一個PDF文檔很簡單。你用Acrobat 4的話將必須創建一個PDF文檔并在其中加入輸入域。放到你的web服務器上。;;然后,你需要用PHP創建FDF文檔,它包含每個域,它的值和數據將被插入的文檔的參考。(這個PDF文檔你剛才已經建好了)。這個會在php中被飛快地處理。文檔的參考是一個指向PDF文檔的URL。;;以第一個例子為基礎,下面的php腳本非常容易。腳本的第二部分已經加入了。;;<?php;;$fdffp = fopen("test.fdf", "w");;;fwrite($fdffp, $HTTP_RAW_POST_DATA, strlen($HTTP_RAW_POST_DATA));;;fclose($fdffp);;;$fdf = fdf_open("test.fdf");;;$volume = fdf_get_value($fdf, "volume");;;$date = fdf_get_value($fdf, "date");;;$comment = fdf_get_value($fdf, "comment");;;if(fdf_get_value($fdf, "show_publisher") == "On") {;;$publisher = fdf_get_value($fdf, "publisher");;;} else;;$publisher = "";;;if(fdf_get_value($fdf, "show_preparer") == "On") {;;$preparer = fdf_get_value($fdf, "preparer");;;} else;;$preparer = "";;;fdf_close($fdf);;;$outfdf = fdf_create();;;fdf_set_value($outfdf, "f_volume", $volume, 0);;;fdf_set_value($outfdf, "b_volume", $volume, 0);;;fdf_set_value($outfdf, "f_comment", $comment, 0);;;fdf_set_value($outfdf, "b_comment", $comment, 0);;;fdf_set_value($outfdf, "f_date", $date, 0);;;fdf_set_value($outfdf, "b_date", $date, 0);;;fdf_set_value($outfdf, "f_preparer", $preparer, 0);;;fdf_set_value($outfdf, "b_preparer", $preparer, 0);;;fdf_set_value($outfdf, "f_publisher", $publisher, 0);;;fdf_set_value($outfdf, "b_publisher", $publisher, 0);;;fdf_set_file($outfdf, "http:/testfdf/resultlabel.pdf");;;fdf_save($outfdf, "outtest.fdf");;;fdf_close($outfdf);;;Header("Content-type: application/vnd.fdf");;;$fp = fopen("outtest.fdf", "r");;;fpassthru($fp);;;unlink("outtest.fdf");;;?>;;你也可以試試這個例子 http://gehtnix.fernuni-hagen.de:8000/testfdf/example2.pdf;;In this example several steps are performed:;;在這個例中幾個步驟已經完成:;;用戶已經埴完了PDF 表單 example2.pdf;;點擊提交按鈕后,提交按鈕關聯的URL已經被調用。在這個例子中,已經執行這個PHP腳本。PHP腳本檢索FDF數據流中的數據并創建新的FDF文檔;;它包含作為結果的PDF文檔的數據。;;FDF文檔用application/vnd.fdf類型送回。;;Acrobat插件讀取數據并顯示這個參考PDF文檔。在此例中為 resultlabel.pdf。;;這仍不是FDF做的每件事,在這個教程中還有很多遺留的東西需要討論。;;你可以在adobe的web網站檢驗這篇文檔。;;
標簽: PHP
主站蜘蛛池模板: 天天综合天天看夜夜添狠狠玩 | 免费一级 一片一毛片 | 一级高清毛片免费a级高清毛片 | 亚洲成a人片在线观看中文!!! | 中国做爰国产精品视频 | 国产a级午夜毛片 | 18在线观看国内精品视频 | 欧美成人免费高清二区三区 | 色综合在| 国产午夜免费福利红片 | 亚洲第一页在线 | 久久免费看 | 亚洲性视频在线 | 日韩欧美亚州 | 欧美成人a级在线视频 | 三级毛片免费观看 | 在线观看视频一区 | 亚洲在线网 | 国产成人女人视频在线观看 | 免费看成人毛片日本久久 | 成年人在线视频网站 | a毛片在线 | 成人亚洲欧美日韩中文字幕 | 免费午夜不卡毛片 | 国产精品自在线天天看片 | 亚洲第一狼人区 | 欧美亚洲午夜 | 在线观看视频一区二区三区 | 久久国产成人福利播放 | 在线观看亚洲欧美 | 亚洲在线视频观看 | 亚洲综合视频在线观看 | 老太婆性杂交毛片 | 日本三级成人中文字幕乱码 | 杨幂国产精品福利在线观看 | 免费观看久久 | 美女wc | 午夜67194| 国产精品久久永久免费 | 99色视频在线 | 久久久精品久久久久三级 |