靈活使用ASP生成PDF文件
發(fā)表時(shí)間:2023-08-13 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]Adobe PDF格式已經(jīng)變成很多機(jī)構(gòu)和公司進(jìn)行跨平臺(tái)制表的通用媒體格式。盡管我不是這個(gè)產(chǎn)品的狂熱癡迷者,卻不得不接受這樣一個(gè)事實(shí):用這個(gè)格式產(chǎn)生一個(gè)協(xié)定可能會(huì)比用Word還要好。由于在一家雇用公司...
Adobe PDF格式已經(jīng)變成很多機(jī)構(gòu)和公司進(jìn)行跨平臺(tái)制表的通用媒體格式。盡管我不是這個(gè)產(chǎn)品的狂熱癡迷者,卻不得不接受這樣一個(gè)事實(shí):用這個(gè)格式產(chǎn)生一個(gè)協(xié)定可能會(huì)比用Word還要好。
由于在一家雇用公司工作,我已經(jīng)把我們所有早期的軟件寫(xiě)成能在Internet上運(yùn)行,這樣我們就能和小的子公司共享公用數(shù)據(jù)庫(kù)了。然而我們遇到的最大的問(wèn)題就是制表。當(dāng)一個(gè)申請(qǐng)人坐在信息站里在線填寫(xiě)他們的就業(yè)申請(qǐng)時(shí),我們?nèi)绾稳〉卯?dāng)前的文檔(或申請(qǐng)等)?由于我們做了大量工作來(lái)獲取數(shù)據(jù),我們還需要申請(qǐng)人手工填寫(xiě)一份申請(qǐng)。
我試了各種辦法,但是看來(lái)都有一個(gè)很大的限制:
如果我能快速產(chǎn)生它,它就只能是一個(gè)HTML形式的衍生物,在打印時(shí)就會(huì)變得面目全非。如果設(shè)計(jì)的看起來(lái)美觀一些,它就會(huì)變得很慢。這是由于我選擇用RTF格式作為我的首選項(xiàng),然后使用文件系統(tǒng)對(duì)象來(lái)完成基于模板的RTF文件,最后加入了我的信息。這個(gè)磁盤讀寫(xiě)的過(guò)程會(huì)耗費(fèi)很長(zhǎng)時(shí)間。記住:我們這里不是在討論列表數(shù)據(jù)或者一個(gè)Excel電子表格。我們是想讓程序用我們自己的標(biāo)志進(jìn)行處理。
最后,我選擇了Adobe(很像一句廣告詞?——譯者)。我討厭它的瀏覽器所以希望自己不會(huì)和它糾纏上,然而它的格式看起來(lái)很不錯(cuò)而且文件也不大。大部分用戶都在系統(tǒng)里裝上它,我們的客戶也不例外。
因此我一直在尋找把數(shù)據(jù)從HTML表單傳遞到PDF文件的方法。我試過(guò)使用Adobe表單,但是它不能真正有效運(yùn)行,然后還要統(tǒng)計(jì)如何合并數(shù)據(jù)庫(kù)請(qǐng)求。這根本不是我想要的東西,我想直接把數(shù)據(jù)從我的HTML表單傳遞到數(shù)據(jù)庫(kù),然后產(chǎn)生數(shù)據(jù)信息到PDF文件里作為瀏覽或打印。
最終我在UseNet發(fā)現(xiàn)了線索。一個(gè)叫Jeremy Hunter的提交的一個(gè)鏈接包含了我準(zhǔn)備在這里講的很多東西——http://partners.adobe.com/asn/developer/acrosdk/forms.html。
首先必須在定義字段的工作站(不是服務(wù)器)上安裝有Adobe完全版。這個(gè)是一個(gè)指向Adobe Forms Acrobat Toolkit的鏈接,由此開(kāi)始一切就容易了。
第一、下載這個(gè)套裝工具并把它解壓縮到指定目錄。
當(dāng)你進(jìn)行這一步操作時(shí),你會(huì)發(fā)現(xiàn)所有源代碼都在VB或VC++中。我們這里不打算關(guān)注它,但是如果你需要代碼就在這里。
第二、注冊(cè)你的DLL。
有兩個(gè)DLL需要被復(fù)制到你的服務(wù)器上。一個(gè)在Visual Basic文件夾中叫fdfacx.dll,另一個(gè)在Visual C++文件夾中叫fdftk.dll。用regsvr32注冊(cè)fdfacx.dll文件。我把這兩個(gè)文件都放到c:winntsystem32下,并在當(dāng)前路徑下輸入“regsvr32 fdftk.dll”。如果你遇到錯(cuò)誤提示信息,請(qǐng)檢查確認(rèn)這兩個(gè)文件確實(shí)在當(dāng)前目錄下,沒(méi)有問(wèn)題則進(jìn)入下一步。
第三、建立表單。
我們將使用每個(gè)人對(duì)這個(gè)示范都很熟悉的表單。這在“http://www.irs.gov”隨意可得并為我們提供足夠的領(lǐng)域來(lái)展示我們能作的東西。
第四、定義Adobe表單字段。
在Adobe Acrobat中打開(kāi)文檔后選擇表單工具,描述你的第一個(gè)表單字段(First Name)。
在你定義后它將讓你命名,我這里命名為“FirstName”。注意這里有幾個(gè)標(biāo)準(zhǔn)的附加格式選項(xiàng),除了字體大小,我選擇進(jìn)行合法性檢查和格式化我的ASP文檔。由于這是一個(gè)快速演示,我選擇跳過(guò)任何檢查,但是我將在客戶端的表單進(jìn)行處理,并在傳遞變量前在服務(wù)端格式化ASP頁(yè)面。
繼續(xù)其他字段,每一個(gè)都要注意命名并可能格式化字體大小或?qū)傩浴?br>在服務(wù)器上保存你的修改。
第五、編寫(xiě)ASP頁(yè)面。
在開(kāi)始這一步之前你要注意到FDF套裝工具闡述的一個(gè)主要對(duì)象——“FDFApp.FDFApp”。它開(kāi)放了許多方法,手冊(cè)上概述了其他的可能方法。我們主要關(guān)心兩個(gè)方法——fdfSetValue和fdfSetFile。接下來(lái)切入正題。
第六、沒(méi)有必要成為PDF專家,這是我目前的建議。套裝工具的用戶指導(dǎo)概述了所有方法,看上去在這個(gè)入門介紹之外還有很多可能的方法。就像你所看到的一樣,你可以很容易添加數(shù)據(jù)庫(kù)命令來(lái)收集數(shù)據(jù)或向數(shù)據(jù)庫(kù)記錄數(shù)據(jù)。
原作者簡(jiǎn)介:
Ty Button就職于俄勒岡的一個(gè)名叫Cardinal Services的雇用公司。Cardinal Services公司曾被俄勒岡商業(yè)雜志評(píng)為1997和1998年度俄勒岡南部第一號(hào)雇用公司,同時(shí)被南海岸商業(yè)開(kāi)發(fā)中心和美國(guó)銀行評(píng)為俄勒岡發(fā)展最快的公司。Button是MIS開(kāi)發(fā)人員,也在網(wǎng)絡(luò)數(shù)據(jù)庫(kù)開(kāi)發(fā)和生產(chǎn)過(guò)程自動(dòng)化上花費(fèi)了大部分時(shí)間