巧用ASP生成PDF檔案 (轉)

worldblog發表於2007-12-12
巧用ASP生成PDF檔案 (轉)[@more@]Adobe PDF格式已經變成很多機構和公司進行跨平臺製表的通用格式。儘管我不是這個產品的狂熱痴迷者,卻不得不接受這樣一個事實:用這個格式產生一個協定可能會比用還要好。

由於在一家僱用公司工作,我已經把我們所有早期的寫成能在Inte上執行,這樣我們就能和小的子公司共享公用了。然而我們遇到的最大的問題就是製表。當一個申請人坐在資訊站裡線上填寫他們的就業申請時,我們如何取得當前的文件(或申請等)?由於我們做了大量工作來獲取資料,我們還需要申請人手工填寫一份申請。

我試了各種辦法,但是看來都有一個很大的限制:

如果我能產生它,它就只能是一個HTML形式的衍生物,在列印時就會變得面目全非。如果設計的看起來美觀一些,它就會變得很慢。這是由於我選擇用RTF格式作為我的首選項,然後使用來完成基於模板的RTF檔案,最後加入了我的資訊。這個讀寫的過程會耗費很長時間。記住:我們這裡不是在討論列表資料或者一個電子表格。我們是想讓用我們自己的標誌進行處理。

最後,我選擇了Adobe(很像一句廣告詞?——譯者)。我討厭它的所以希望自己不會和它糾纏上,然而它的格式看起來很不錯而且檔案也不大。大部分都在系統裡裝上它,我們的客戶也不例外。

因此我一直在尋找把資料從HTML表單傳遞到PDF檔案的方法。我試過使用Adobe表單,但是它不能真正有效執行,然後還要統計如何合併資料庫請求。這根本不是我想要的東西,我想直接把資料從我的HTML表單傳遞到資料庫,然後產生資料資訊到PDF檔案裡作為瀏覽或列印。
最終我在UseNet發現了線索。一個叫Jeremy Hunter的提交的一個連結包含了我準備在這裡講的很多東西——http://partners.adobe.com/asn/developer/acrosdk/forms.html。

首先必須在定義欄位的工作站(不是)上有Adobe完全版。這個是一個指向Adobe Forms Acrobat Toolkit的連結,由此開始一切就容易了。


第一、這個套裝工具並把它解到指定目錄。

當你進行這一步操作時,你會發現所有都在VB或VC++中。我們這裡不打算關注它,但是如果你需要程式碼就在這裡。


第二、註冊你的DLL。

有兩個DLL需要被複制到你的伺服器上。一個在資料夾中叫fdfacx.dll,另一個在Visual C++資料夾中叫fdftk.dll。用regsvr32註冊fdfacx.dll檔案。我把這兩個檔案都放到c:winntsystem32下,並在當前路徑下輸入“regsvr32 fdftk.dll”。如果你遇到錯誤提示資訊,請檢查確認這兩個檔案確實在當前目錄下,沒有問題則進入下一步。


第三、建立表單。

我們將使用每個人對這個示範都很熟悉的表單。這在“”隨意可得併為我們提供足夠的領域來展示我們能作的東西。


第四、定義Adobe表單欄位。

在Adobe Acrobat中開啟文件後選擇表單工具,描述你的第一個表單欄位(First Name)。

在你定義後它將讓你命名,我這裡命名為“FirstName”。注意這裡有幾個標準的附加格式選項,除了字型大小,我選擇進行合法性檢查和格式化我的文件。由於這是一個快速演示,我選擇跳過任何檢查,但是我將在客戶端的表單進行處理,並在傳遞變數前在服務端格式化ASP頁面。

繼續其他欄位,每一個都要注意命名並可能格式化字型大小或屬性。
在伺服器上儲存你的修改。


第五、編寫ASP頁面。

在開始這一步之前你要注意到FDF套裝工具闡述的一個主要物件——“FDFApp.FDFApp”。它開放了許多方法,手冊上概述了其他的可能方法。我們主要關心兩個方法——fdfSetValue和fdfSetFile。接下來切入正題。








第六、沒有必要成為PDF專家,這是我目前的建議。套裝工具的使用者指導概述了所有方法,看上去在這個介紹之外還有很多可能的方法。就像你所看到的一樣,你可以很容易新增資料庫命令來收集資料或向資料庫記錄資料。

原作者簡介:
Ty Button就職於俄勒岡的一個名叫Cardinal Services的僱用公司。Cardinal Services公司曾被俄勒岡商業雜誌評為1997和1998年度俄勒岡南部第一號僱用公司,同時被南海岸商業開發中心和美國銀行評為俄勒岡發展最快的公司。Button是MIS開發人員,也在資料庫開發和生產過程自動化上花費了大部分時間

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992364/,如需轉載,請註明出處,否則將追究法律責任。

相關文章