跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

Lotus Forms 中 Web 表单打印的解决方案

窦 文敏, 软件工程师, EMC
窦文敏,IBM CDL 软件工程师,主要从事 IBM Lotus Forms 的测试工作。对 XML、Web 技术、软件过程和软件测试有浓厚的兴趣。

简介: 随着 Web 2.0 技术和 RIA 应用的不断发展,电子表单的应用不断增多。在某些应用中,使用电子表单的同时还需要打印表单,而打印 Web 上的电子表单往往受到浏览器等本身特性的影响,Lotus® Forms Webform Server 提供了方便打印各种电子表单的功能。本文将通过实例向用户详细的介绍如何使用 Lotus Forms Webform Server 提供的表单打印功能实现高质量的电子表单打印。

发布日期: 2009 年 10 月 16 日
级别: 初级
访问情况 : 465 次浏览
评论: 


Lotus Forms、XFDL 及 Lotus Forms Webform Server 的背景简介

Lotus Forms 为客户提供电子表单解决方案,帮助开发人员创建、部署和管理基于 XML 表单。电子表单的填写和打印是 Lotus Forms 提供的最基本功能,与纸质表单相比,电子表单的最大优势之一就是能够动态地响应用户动作,并支持客户通过基于浏览器的电子表单将流程扩展到客户。

Lotus Forms 在一种称为可扩展表单描述语言(Extensible Forms Description Language,XFDL)的 XML 文档中存储表单文档。XFDL 支持高精度的布局,集成了计算和输入检验、数字签名及其他特性。

Lotus Forms Webform Server 是 Lotus Forms 的服务器端组件,它将 XFDL 转换为 HTML/JavaScript,提供一个零内存占用的 “瘦客户端” 呈现系统。这使用户可以使用 Web 浏览器查看和操作表单、在表单中输入信息、批准、签名、打印和提交表单,而这些都不需要在客户端上安装额外的软件。然后,Webform Server 可以接收完成的 HTML 表单,将它们转换回 XFDL 格式,并将它们传递给应用程序进行进一步处理。Translator 是 Webform Server 得最主要组成部分,负责执行 XFDL 和 HTML 之间的转换。


实例概述

本文选用了图书馆信息管理的表单作为例子,随着信息技术和物流系统的发展,类似的信息管理系统层出不穷,图书的定购、入库整理保存、借阅咨询服务等都需要表单来记录及展现信息。

图书定购合同作为严肃的具有法律效力的表单,在打印时需要准确打印;大批量图书入库信息整理可能会带来大表单打印的需求。因此在该系统中需要灵活的表单打印功能。

本文中使用的完整表单详见下载部分,可以使用 Lotus Forms Viewer 3.5 或 Lotus Forms Webform Server 3.5 来打开该表单。


准确打印

Lotus Forms Webform Server 3.5 对 web 表单打印的一个重要改进就是提供了表单的准确打印功能。之前通过 PNG 或者 GIF 输出格式打印出来的表单会包含浏览器的页眉和页脚等,这样导致了打印出来的表单是被缩小的,而且因为含有不需要的信息,这样的表单作为定购合同是不合适的,可以通过 Lotus Forms Webform Server 3.5 提供的表单准确打印功能来解决这个问题。

使用 Lotus Forms Webform Server 3.5 准确打印的步骤:

  1. 打开 <Webform Server Install Dir>\Translator\ 目录下的 translator.properties 文件;
  2. 将 printOutputFormat 修改为 plugin/png 或者 plugin/gif;
  3. 保存并关闭 translator.properties 文件;
  4. 重启 Translator server。

打开任意一个表单,单击菜单中的打印按钮,如果以前没有使用过 Lotus Webform Server 3.5 的准确打印或数字签名功能,会弹出安装插件的提示对话框,根据提示安装插件。成功安装插件后,表单打印的结果就是准确打印。

不同浏览器上的插件安装步骤可能会有差别,插件只需要安装一次。


纵向打印与横向打印

Lotus Forms Webform Server 3.5 支持用户设置表单的打印方向,即用户可以选择纵向或者横向打印表单。一般的 web 表单打印都是默认的纵向打印,这不适合打印宽度大于高度的表单,在 Lotus Forms Webform Server 3.5 中,用户可以选择横向打印这类表单。

用户可以在 translator.properties 文件中设置表单打印方向,也可以在表单中设置打印方向。打印时优先使用表单中设置的打印方向。下面将举例说明。

实例 1:使用 translator.properties 文件中设置的表单打印方向。

  1. 打开 <Webform Server Install Dir>\Translator\ 目录下的 translator.properties 文件;
  2. 将 printOrientation 然后将其值修改为 landscape;
  3. 保存并关闭 translator.properties 文件;
  4. 重启 Translator server。

打开任意一个没有定义 printOrientation 的表单,打印该表单,表单的打印方向为横向。

实例 2:使用表单中设置的打印方向。

如实例表单 1(Sample1.xfdl)所示,表单的打印设置为横向打印,表单第一页的打印设置为纵向打印,表单第二页没有打印设置。

表单的重要代码如下所示。


清单 1. 实例表单 1
				
<XFDL xmlns:custom="http://www.ibm.com/xmlns/prod/XFDL/Custom"
  xmlns:designer="http://www.ibm.com/xmlns/prod/workplace/forms/designer/2.6"
  xmlns:xfdl="http://www.ibm.com/xmlns/prod/XFDL/7.6"
  xmlns="http://www.ibm.com/xmlns/prod/XFDL/7.6">
    <globalpage sid="global">
        <global sid="global">
         
            <formid>
                <version>1.0.0</version>
            </formid>
            <printsettings>
                <dialog>
                    <orientation>landscape</orientation>
                </dialog>
            </printsettings>
        </global>
    </globalpage>
    <page sid="PAGE1">
        <global sid="global">
            <printsettings>
                <dialog>
                    <orientation>portrait</orientation>
                </dialog>
            </printsettings>
        </global>
        ……
    </page>
    <page sid="PAGE2">
        <global sid="global">
         
        </global>
        ……
    </page>
</XFDL>

无论 translator.properties 中的 printOrientation 为何值,当从第一页打印表单时,使用纵向打印;当从第二页打印表单时,使用横向打印。

页面中设置的打印属性将覆盖表单中设置的打印属性,所以如果设置了页面特定的打印属性,需要同时重复表单中设置的该页面的打印属性。


大表单打印—分割打印

以前,Lotus Forms Webform Server 只能将表单缩小的打印到一张纸上,可能由于字体较小而不利于用户的使用。Lotus Forms Webform Server 3.5 支持表单的分割打印,用户可以使用该功能打印大的表单,如含有大表格的表单。

可以通过设置 translator.properties 中的 printPageLayout 选项来定义分割打印属性。该选项可以有三个值,分别为: shrinktopage、 tileonedirection 和 tiletwodirections。

设置 printPageLayout 为 tileonedirection,然后打印实例表单2(Sample2.xfdl),该表单的宽度大于高度,表单将在横向分割打印。如果打印实例表单3(Sample3.xfdl),该表单的高度大于宽度,表单将在纵向分割打印。

设置 printPageLayout 为 tiletwodirections,打印实例表单3,实例表单3的宽度和高度都大于默认的表单打印尺寸,表单将在两个方向分割打印。


使用 Print Service 分离打印任务

在 Lotus Forms Webform Server 中,可以使用 Print Service servlet 将打印任务放到集群环境中的特定机器上。Print Service servlet 绑定在 Translator 的安装文件中,会被自动的安装到任何安装了 Translator 的机器中。

使用 Print Service servlet 得配置过程:

  1. 打开 <Webform Server Install Dir>\Translator\ 目录下的 translator.properties 文件;
  2. 将 printingMode 设为 remote;
  3. 设置 printingServiceURL 来指向 print service 的位置;
  4. 保存并关闭 translator.properties 文件;
  5. 重启 Translator server。

连接 Print Service servlet 的 URL 为:http://<location>:<port>/translator/PrintService 。


中文表单打印需要注意的问题

  • 表单定义

    在表单定义中,需要将中文表单项的字体设置为相应的中文字体,如果不设置字体属性,将会使用默认的 Arial 字体,打印该表单时,中文字符将会打印成乱码。

  • Server 上的字体文件

    如果需要打印的表单是中文表单,需要在 Webform Server 的 translator.properties 中设置 fontDirectory 指向包含使用的相应中文字体文件的文件夹。


结束语

本文详细介绍了 Lotus Forms Webform Server 3.5 提供的 web 表单打印功能,并以图书馆信息管理中使用的表单为例阐述了如何使用 Lotus Forms Webform Server 提供的电子表单打印功能实现理想的电子表单打印效果。最后,还总结了中文表单打印中需要注意的问题。

声明

本人所发表的内容仅为个人观点,不代表 IBM 公司立场、战略和观点。


参考资料

学习

获得产品和技术

关于作者

窦文敏,IBM CDL 软件工程师,主要从事 IBM Lotus Forms 的测试工作。对 XML、Web 技术、软件过程和软件测试有浓厚的兴趣。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Lotus, XML
ArticleID=436773
ArticleTitle=Lotus Forms 中 Web 表单打印的解决方案
publish-date=10162009
author1-email=douwm@cn.ibm.com
author1-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。