Oracle Application Express
返回 Oracle APEX 主页
Application Express 3.0 中的 PDF 打印
Application Express 3.0 引入了将报表区域导出 PDF 的功能,尤其是打印报表的功能。这是以声明方式定义的,并可用于所有报表区域。Application Express 用户现在可以查看并打印报表,报表包含每个页面上重复的页面标题以及完全符合各种页面大小的内容。要达到此目的,需要使用外部定义的报表服务器将报表数据转换成 PDF 格式。下图说明了 Application Express PDF 输出体系结构。

Application Express PDF 输出体系结构

当应用程序的最终用户单击打印链接时,请求将发送到 Application Express 引擎(属于 Oracle 数据库)。然后,Oracle APEX 引擎以 XML 格式生成相应的报表数据并以 XSL-FO 或 RTF 格式生成相应的报表模板。然后,外部报表引擎使用 BI Publisher 10.1.3.2(以前称为 Oracle XML Publisher)附带的转换 servlet 将数据和模板转换为向最终用户显示的 PDF 格式。该体系结构的完成对最终用户和开发人员全是透明的。最终用户只需单击打印链接,开发人员只需以声明方式设置区域即可支持 PDF 输出。

您的报表服务器可以是 Oracle BI Publisher 或者标准的 XSL-FO 处理引擎。如果您选择 BI Publisher 作为报表服务器,您将享受更高级别的功能。为容纳功能上的差异,Oracle Application Express 提供了两种级别的功能,即标准支持和高级支持。使用标准支持,您只限于使用基于 XSL-FO 的报表模板。(请注意,团队“支持”指的是在该工具中将支持的功能。)

标准支持

使用标准 XSL-FO 处理引擎可以实现标准支持。它通过页面属性的基本控制提供报表区域和报表查询的声明式格式设置。这些属性包括方位、大小、列标题格式、页面标题以及页脚。以下屏幕快照说明了标准支持。
包含打印链接的报表区域 标准报表的 PDF 输出 使用背景颜色的 PDF 输出

高级支持

高级支持需要 Oracle BI Publisher 的有效许可证。利用高级支持,您可以定义使用 BI Publisher Word Template Builder 开发的基于 RTF 的报表布局。这提供了对报表各个方面的简便图形控制。您可以将徽标添加到页面中、添加复杂的分组控制并具有完全的分页控制。您甚至还可以嵌入图表和创建看起来就像标准政府格式的报表。以下屏幕快照说明了高级支持。
授权应用程序 带分组的主从页面 多个图表和报表

在 Application Express 中使用 BI Publisher 的优点

使用 BI Publisher 作为您的 Application Express 打印服务器可以生成更健全和更专业的应用程序。

  • 无缝:打印功能完成集成到 Application Express 中。
  • 多个输出格式:除了 PDF 之外还可以生成 Word、Excel 和 HTML 输出。
  • 健全的报表布局:开发人员可以使用基于 RTF 的模板提供对分组控制、标题、页脚的更好控制,并可以嵌入图表。
  • 支持非西方欧洲字体:高级本地化功能,包括对 CJK、BiDi、Unicode 和 MLS 的全面支持。
  • 单个文件导出/导入:基于 RTF 的报表布局是应用程序定义的一部分,因此它们与应用程序一同导入和导出。
  • 受 Oracle 支持:使用 BI Publisher 时,您使用的是受支持的 Oracle 产品。
除了在 Application Express 中使用 BI Publisher 的优点之外,BI Publisher 还可以通过其他方式使您的组织受益。
  • 调度和传递
  • 基于多个 SQL 查询创建报表
  • 异种数据库支持
  • 分页
  • 报表缓存
  • 高性能

配置您的 Oracle Application Express 打印服务器
安装 Application Express 3.0 之后,即可使用 Oracle Application Express 管理服务执行报表输出的配置。

Oracle BI Publisher

要使用 Oracle Business Intelligence Publisher 作为报表服务器,您需要安装以下两个版本之一:

  • Oracle Business Intelligence Publisher 10.1.3.2
  • Oracle 商务智能企业版 10.1.3.2

Oracle 商务智能企业版 10.1.3.2 可从此处下载:

Oracle 商务智能企业版

该下载包括两个 CD。下载并解压缩之后,启动 Oracle Installer。可以在 disk 1 文件夹中找到该程序。对于 Windows 用户,该程序为:

   \Windows\Server\Oracle_Business_Intelligence\setup.exe
安装期间,您可以选择安装完整的套件或者仅安装选择的组件。如果安装只是用于 Application Express,则只需安装 BI Publisher 组件。

有关安装 Oracle 商务智能企业版 10.1.3.2 的更多信息,请参考以下文档:

Oracle 商务智能基础架构快速安装指南

Windows 用户可以启动 OC4J,这还会启动 BI Publisher,使用菜单项来启动和停止 OC4J。启动 OC4J 之后,您可以打开 BI Publisher 启动页面(在 Windows 开始菜单的 BI Publisher 文件夹中也有该链接)。

如果您不确定在 Application Express 中进行此配置时需要使用的主机地址和端口,请参考打开 BI Publisher 启动页面后在浏览器的 URL 域中显示的主机地址和端口。

如果您使用 BI Publisher 作为报表服务器,首先,访问 Report Printing 参数:
  1. 访问 Administration Services 主页
  2. 选择管理服务
  3. 选择 Manage Environment Settings 下的 Instance Settings
  4. 单击 Report Printing 仅关注 Report Printing 属性
现在,指定以下属性:
  • Oracle BI Publisher:Advanced Support
  • Print Server Protocol:HTTPHTTPS(取决于您的配置)
  • Print Server Host Address:运行 java 容器的计算机的主机名 - 例如 myhost.mycompany.com
  • Print Server Port:java 容器在其上监听的端口 - 例如 8888
  • Print Server Script:/xmlpserver/convert
有关 BI Publisher 安装的信息,请参考 BI Publisher 文档。Application Express 与 BI Publisher 10.1.3.2 和更高版本兼容。

Apache FOP

如果您希望使用 XSL-FO 服务器,您将需要安装一个 XSL-FO 服务器,例如 Apache FOP。外部报表服务器不随 Application Express 提供,Oracle 支持也不回答有关如何配置这些服务的问题。

Oracle 提供了一个 Java Server Page (JSP) 可用作外部 XSL-FO 处理引擎。使用该 JSP 配置 PDF 打印包括三个步骤:
  • 下载所需的软件
  • 配置 Apache FOP 和提供的 XSL-SO 处理 JSP
  • 将 Oracle Application Express 配置为使用 JSP 进行 PDF 打印
开始之前,您需要启动并运行 Oracle Containers for J2EE (OC4J)。您可以使用 10g 数据库附带的版本或从 OTN 下载最新版本。有关如何下载并安装 OC4J 的信息,请访问 Oracle Containers for J2EE 站点。

第 1 步:下载所需的软件
  • 下载 apex_fop_render.jsp XSL-SO 处理 JSP。然后,解压缩下载的文件并将其放在以下位置:
    $ORACLE_HOME/oc4j/j2ee/home/default-web-app
  • 下载该 JSP 基于的 Apache FOP 版本 0.20.5 库的当前版本,然后将解压缩的 fop-0.20.5 目录放到以下位置:
    $ORACLE_HOME/oc4j/j2ee
第 2 步:配置 Apache FOP 和提供的 XSL-SO 处理 JSP
  • 要以 PDF 格式呈现接收的 XML 报表输出,您的 Java 环境需要能够访问 FOP 库。为此,在 $ORACLE_HOME/oc4j/j2ee/home/config/application.xml 中包括以下行
         <!-- libraries below added for FOP support -->
         <library path="../../../j2ee/fop-0.20.5/build/fop.jar"/>
         <library path="../../../j2ee/fop-0.20.5/lib/batik.jar"/>
         <library path="../../../j2ee/fop-0.20.5/lib/avalon-framework-cvs-20020806.jar" />
         <!-- above libraries added for FOP support -->
    
  • 进行这些更改之后,您需要重新启动 OC4J。

    • 如果您使用的是 Oracle Containers for J2EE 10g (10.1.3.0.0):

      • 要关闭 OC4J,从 ORACLE_HOME/bin 目录发出以下命令:
             oc4j -shutdown
      • 要启动 OC4J,从 ORACLE_HOME/bin 目录发出以下命令:
             oc4j -start
    • 如果您使用的是 Oracle Containers for J2EE (OC4J) 的以前版本:

      • 使用默认的配置文件启动 OC4J,该配置文件位于 j2ee/home/config 目录中。
             > cd <J2EE_HOME>
             > java -jar oc4j.jar
      • 在启动该过程的窗口中按 ^c (Ctrl+c) 键启动 OC4J

  • 必须先设置 ORACLE_HOME 和 JAVA_HOME 环境变量,然后才能使用该命令。

    • ORACLE_HOME:设置为根目录,您将在该目录中安装 OC4J 分发。如果要运行 oc4j 或 oc4j.cmd 可执行脚本,必须定义该变量。例如,如果将 OC4J 安装到 C:\oracle 中,将 ORACLE_HOME 变量的值设置为该目录。

    • JAVA_HOME:设置为 JDK 的位置。启动 OC4J 服务器需要该变量。例如:JAVA_HOME=/java/j2se15
第 3 步:将 Oracle Application Express 配置为使用 JSP 进行 PDF 打印

安装 FOP 之后,访问 Report Printing 参数:
  1. 访问 Administration Services 主页
  2. 选择管理服务
  3. 选择 Manage Environment Settings 下的 Instance Settings
  4. 单击 Report Printing 仅关注 Report Printing 属性
现在,指定以下属性:
  • Oracle BI Publisher:标准支持
  • Print Server Protocol:HTTPHTTPS(取决于您的配置)
  • Print Server Host Address:运行 java 容器的计算机的主机名 - 例如 myhost.mycompany.com
  • Print Server Port:OC4J 在其上监听的端口 - 例如 8888
  • Print Server Script:/apex_fop_render.jsp
其他 XSL-FO 处理引擎

如果要使用其他 XSL-FO 处理引擎,则需要创建一个端点以提供与为上面的 Apache FOP 示例提供的 JSP 类似的功能。

寄送此页面
Printer View 打印机视图