发新话题
打印

巧用ASP生成PDF文件

巧用ASP生成PDF文件


Adobe PDF格式已经变成很多机构和公司进行跨平台制表的通用媒体格式。尽管我不是这个产品的狂热痴迷者,却不得不接受这样一个事实:用这个格式产生一个协定可能会比用Word还要好。* \0 K- G* i0 o- t4 i; v2 [4 i4 a
; C$ ^3 h3 `, |3 f: Z  o8 h- l% o, E
由于在一家雇用公司工作,我已经把我们所有早期的软件写成能在Internet上运行,这样我们就能和小的子公司共享公用数据库了。然而我们遇到的最大的问题就是制表。当一个申请人坐在信息站里在线填写他们的就业申请时,我们如何取得当前的文档(或申请等)?由于我们做了大量工作来获取数据,我们还需要申请人手工填写一份申请。1 I7 r" J' o0 B+ |  S" x

& N/ X, s; N0 N+ J. M我试了各种办法,但是看来都有一个很大的限制:* k; G& L# U0 D4 i+ Q1 F9 Z

3 F+ @' C& {5 n/ }如果我能快速产生它,它就只能是一个HTML形式的衍生物,在打印时就会变得面目全非。如果设计的看起来美观一些,它就会变得很慢。这是由于我选择用RTF格式作为我的首选项,然后使用文件系统对象来完成基于模板的RTF文件,最后加入了我的信息。这个磁盘读写的过程会耗费很长时间。记住:我们这里不是在讨论列表数据或者一个Excel电子表格。我们是想让程序用我们自己的标志进行处理。0 I1 D$ E* t: ?8 q- \8 u
! ^2 Q/ l) p# D, W3 P. h+ `
最后,我选择了Adobe(很像一句广告词?——译者)。我讨厌它的浏览器所以希望自己不会和它纠缠上,然而它的格式看起来很不错而且文件也不大。大部分用户都在系统里装上它,我们的客户也不例外。
) x) v' X1 w% m/ w+ n
6 L8 {; T4 o, u$ K* U& a因此我一直在寻找把数据从HTML表单传递到PDF文件的方法。我试过使用Adobe表单,但是它不能真正有效运行,然后还要统计如何合并数据库请求。这根本不是我想要的东西,我想直接把数据从我的HTML表单传递到数据库,然后产生数据信息到PDF文件里作为浏览或打印。2 f/ N/ l* A% ?' c6 z& i
最终我在UseNet发现了线索。一个叫Jeremy Hunter的提交的一个链接包含了我准备在这里讲的很多东西——http://partners.adobe.com/asn/developer/acrosdk/forms.html。+ p8 I1 F) ^& `: \8 k* A8 w* o
" x" j/ h. `8 c' t
首先必须在定义字段的工作站(不是服务器)上安装有Adobe完全版。这个是一个指向Adobe Forms Acrobat Toolkit的链接,由此开始一切就容易了。; ], C6 Q" ^' N( v' Q
: c$ ?" f% L3 z  r# W
6 X9 y1 u" Q7 v# ~
第一、下载这个套装工具并把它解压缩到指定目录。
/ O; D* q" z3 s& J5 F- J8 N/ Z) s+ R) X. J- e
当你进行这一步操作时,你会发现所有源代码都在VB或VC  中。我们这里不打算关注它,但是如果你需要代码就在这里。3 ^8 F* D8 T% n+ C# p

; L) [" q5 g3 {' e3 i3 S% G/ J2 l8 d% v
第二、注册你的DLL。6 }1 o) H7 E" M  u. t+ h( R
8 E8 Y& a( N& x" D. o  S! h; B* j& A
有两个DLL需要被复制到你的服务器上。一个在Visual Basic文件夹中叫fdfacx.dll,另一个在Visual C  文件夹中叫fdftk.dll。用regsvr32注册fdfacx.dll文件。我把这两个文件都放到c:winntsystem32下,并在当前路径下输入“regsvr32 fdftk.dll”。如果你遇到错误提示信息,请检查确认这两个文件确实在当前目录下,没有问题则进入下一步。* d3 I9 Z* T( K8 J6 n2 d) E
  V# _5 P$ ^2 L0 B5 g# j* C

) {$ G; U% p8 c+ `1 n5 _第三、建立表单。
+ x$ G2 d- t7 l' I! Z
  @! t( M+ S- Z我们将使用每个人对这个示范都很熟悉的表单。这在“http://www.irs.gov”随意可得并为我们提供足够的领域来展示我们能作的东西。
' G5 W0 l/ F3 J% `) c5 b4 f7 {0 I* F( Y' T0 N

$ t1 `8 r, h* n3 U第四、定义Adobe表单字段。
3 r# m7 Q* C2 p1 i, n+ e# C' _
5 P. d# n: q( }# E在Adobe Acrobat中打开文档后选择表单工具,描述你的第一个表单字段(First Name)。
; f4 L- a* _1 @: r- Y
" e: p4 p; b' Y2 c在你定义后它将让你命名,我这里命名为“FirstName”。注意这里有几个标准的附加格式选项,除了字体大小,我选择进行合法性检查和格式化我的ASP文档。由于这是一个快速演示,我选择跳过任何检查,但是我将在客户端的表单进行处理,并在传递变量前在服务端格式化ASP页面。
( _+ x! M0 r0 f0 |& V/ n# D$ w# g: }
继续其他字段,每一个都要注意命名并可能格式化字体大小或属性。
  {1 T' a) q) P0 @' O8 K1 Q在服务器上保存你的修改。8 T3 i# y% O/ u

( B3 m& V7 P& Q2 f5 h' C. t
! x: s0 t9 y% q% ^" }  l" b( ?第五、编写ASP页面。
% e1 g; B0 V; M
1 M" R0 R/ {; ]; A8 c在开始这一步之前你要注意到FDF套装工具阐述的一个主要对象——“FDFApp.FDFApp”。它开放了许多方法,手册上概述了其他的可能方法。我们主要关心两个方法——fdfSetValue和fdfSetFile。接下来切入正题。! K! i# _$ B3 Q) B; k- ?6 @

+ }- }9 H2 C; K" Q7 o% y4 A" l7 Y$ Y4 S& F/ A0 ^

+ b. n6 _9 z0 T; i& W. I
6 O; H& {( D4 n  R0 [1 g3 W% T
5 E4 `( Q3 H/ ^  d/ Z$ `9 T' `# x6 {

  s' h3 E/ S$ v- S+ Y1 F* ]- E: l2 U( t. `' S! Y
第六、没有必要成为PDF专家,这是我目前的建议。套装工具的用户指导概述了所有方法,看上去在这个入门介绍之外还有很多可能的方法。就像你所看到的一样,你可以很容易添加数据库命令来收集数据或向数据库记录数据。) w% Y% J0 w( B

  V  X; W$ Y) E/ [+ ^原作者简介:8 L* S' e! d9 @# T* R
Ty Button就职于俄勒冈的一个名叫Cardinal Services的雇用公司。Cardinal Services公司曾被俄勒冈商业杂志评为1997和1998年度俄勒冈南部第一号雇用公司,同时被南海岸商业开发中心和美国银行评为俄勒冈发展最快的公司。Button是MIS开发人员,也在网络数据库开发和生产过程自动化上花费了大部分时间



点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹

TOP

发新话题