巧用ASP生成PDF文件

     Adobe PDF格式已经变成很多机构和公司进行跨平台制表的通用媒体格式。尽管我不是这个产品的狂热痴迷者,却不得不接受这样一个事实:用这个格式产生一个协定可能会比用Word还要好。
     
     由于在一家雇用公司工作,我已经把我们所有早期的软件写成能在Internet上运行,这样我们就能和小的子公司共享公用数据库了。然而我们遇到的最大的问题就是制表。当一个申请人坐在信息站里在线填写他们的就业申请时,我们如何取得当前的文档(或申请等)?由于我们做了大量工作来获取数据,我们还需要申请人手工填写一份申请。
     
     我试了各种办法,但是看来都有一个很大的限制:
     
     如果我能快速产生它,它就只能是一个HTML形式的衍生物,在打印时就会变得面目全非。如果设计的看起来美观一些,它就会变得很慢。这是由于我选择用RTF格式作为我的首选项,然后使用文件系统对象来完成基于模板的RTF文件,最后加入了我的信息。这个磁盘读写的过程会耗费很长时间。记住:我们这里不是在讨论列表数据或者一个Excel电子表格。我们是想让程序用我们自己的标志进行处理。
     
     最后,我选择了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需要被复制到你的服务器上。一个在Visual Basic文件夹中叫fdfacx.dll,另一个在Visual C++文件夹中叫fdftk.dll。用regsvr32注册fdfacx.dll文件。我把这两个文件都放到c:winntsystem32下,并在当前路径下输入“regsvr32 fdftk.dll”。如果你遇到错误提示信息,请检查确认这两个文件确实在当前目录下,没有问题则进入下一步。
     
     
     第三、建立表单。
     
     我们将使用每个人对这个示范都很熟悉的表单。这在http://www.irs.gov”随意可得并为我们提供足够的领域来展示我们能作的东西。
     
     
     第四、定义Adobe表单字段。
     
     在Adobe Acrobat中打开文档后选择表单工具,描述你的第一个表单字段(First Name)。
     
     在你定义后它将让你命名,我这里命名为“FirstName”。注意这里有几个标准的附加格式选项,除了字体大小,我选择进行合法性检查和格式化我的ASP文档。由于这是一个快速演示,我选择跳过任何检查,但是我将在客户端的表单进行处理,并在传递变量前在服务端格式化ASP页面。
     
     继续其他字段,每一个都要注意命名并可能格式化字体大小或属性。
     在服务器上保存你的修改。
     
     
     第五、编写ASP页面。
     
     在开始这一步之前你要注意到FDF套装工具阐述的一个主要对象——“FDFApp.FDFApp”。它开放了许多方法,手册上概述了其他的可能方法。我们主要关心两个方法——fdfSetValue和fdfSetFile。接下来切入正题。
     
          
     
     第六、没有必要成为PDF专家,这是我目前的建议。套装工具的用户指导概述了所有方法,看上去在这个入门介绍之外还有很多可能的方法。就像你所看到的一样,你可以很容易添加数据库命令来收集数据或向数据库记录数据。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98) 可扩展数组 Dim MyArray() for i = 0 to 10
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'nopic:代码没有图片时默认值
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采用 myisam引擎。access 2003  不同的地方: 
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(javascript)与服务端(asp或php等)脚本语言的数据交互。
<% ’判断文件名是否合法 Function isFilename(aFilename)  Dim sErrorStr,iNameLength,i  isFilename=TRUE
在调用的时候加入判断就行了. {aspcms:navlist type=0 } {if:[navlist:i]<6} < li><a href=\"[navlist:link]\" target=\"_top\">[navlist:name]</a> </li>
导航栏调用 {aspcms:navlist type=0}     <a href=\"[navlist:link]\">[navlist:name]</a>
1.引入外部文件: {aspcms:template src=infobar.html} 2.二级下拉菜单 <ul class=\"nav\">
downpic.asp页面:  <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记忆一定的信息。Cookies的工作原理是,第一次由服务器端写入到客户端的系统中。以后每次访问这个网页,都是先由客户端将Cookies发送到服务器端,再由服务器端
很简单,在需要调用的地方用这种模式 {aspcms:content sort={aspcms:sortid} num=17 order=isrecommend}
网站系统使用ACCESS数据库时,查询时怎么比较日期和时间呢?为什么常常比较出来却是错误的呢?比如早的日期比迟的日期大?
str1=\"1235,12,23,34,123,21,56,74,1232\" str2=\"12\" 问题:如何判断str2是否存在str1中,要求准确找出12,不能找出str1中的1235、123、1232
实例为最新版本的kindeditor 4.1.5. 主要程序: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)
用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“中国”、“人民”等关键字并在数据库内进行搜索。看完本文后,你就可以发
首先感谢ASPCMS官网注册用户xing0203的辛苦付出!一下为久忆YK网络转载原创作者xing0203的文章内容!为了让小白更加清楚的体验替换过程,久忆YK对原文稍作了修改!
数据库连接: <% set conn=server.createobject(\"adodb.connection\") conn.open \"driver={microsoft access driver (*.mdb)};dbq=\"&server.mappath(\"数据库名\")
第1步:修改plugins下的image/image.js 找到\'<input type=\"button\" class=\"ke-upload-button\" value=\"\' + lang.upload + \'\" />\',
asp函数: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)