开发人员工具
Application Express
Oracle Application Express | 返回 Oracle APEX 首页 | |||||||||||||
| Application Express 中的 PDF 打印 | ||||||||||||||
| ||||||||||||||
| 1. 简介和体系结构 Application Express 3.0 引入了将报表区域导出到 PDF 的功能,尤其是打印报表的功能。这是以声明方式定义的,并可用于所有报表区域。Application Express 用户现在可以查看并打印报表,报表包含每个页面上重复的页面标题以及完全符合各种页面大小的内容。要达到此目的,需要使用外部定义的报表服务器将报表数据转换成 PDF 格式。已将更多打印增强功能整合到 Oracle Application Express 3.1 中的区域打印属性和报表查询中。下图说明了 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 打印。
| ||||||||||||||
| 2. 配置选项 报表服务器可以是 Oracle BI Publisher、带有 Apache FOP 的 OC4J 或其他标准的 XSL-FO 处理引擎。如果您选择 BI Publisher 作为报表服务器,您将享受更高级别的功能。为容纳功能上的差异,Oracle Application Express 提供了两种级别的功能,即标准和高级。使用标准配置,您只限于使用基于 XSL-FO 的报表模板。 | ||||||||||||||
| 2.1 标准 使用 Apache FOP 或其他标准 XSL-FO 处理引擎可以实现标准配置。从 Application Express 3.0.1 开始,包含了与 Oracle Containers for J2EE (10.1.3.2) 结合使用的受支持的 Apache FOP 配置。这通过页面属性的基本控制提供报表区域和报表查询的声明式格式设置。这些属性包括方位、大小、列标题格式、页面标题以及页脚。以下屏幕快照说明了标准配置。
高级配置需要 Oracle BI Publisher 的有效许可证。通过高级配置,您除了拥有标准配置的所有功能外,还可以使用 BI Publisher Word 模板插件来定义基于 RTF 的报表布局。这提供了对报表各个方面的简便图形控制。您可以将徽标添加到页面中、添加复杂的分组控制并具有完全的分页控制。您甚至还可以嵌入图表和创建看起来就像标准政府格式的报表。以下屏幕快照说明了高级配置。
此处还提供了有关高级 PDF 报表的方法文档: 如何创建主从 PDF 报表。 2.3 在 Application Express 中使用 BI Publisher 的优势 使用 BI Publisher 作为您的 Application Express 打印服务器可以生成更健全和更专业的应用程序。
| ||||||||||||||
| 3. 在 Windows 上安装和配置 Oracle BI Publisher | ||||||||||||||
| 3.1 前提条件 要使用 Oracle BI Publisher 作为报表服务器,需要安装 Oracle Business Intelligence Publisher 10.1.3.2.1 版。可以通过 OTN 开发人员许可下方的链接下载(……有限许可,您可以使用本软件程序开发一个应用系统原型(仅一个),该许可不得转让,不得用于任何其他用途……)。 Oracle Business Intelligence Publisher 下载,选择 BI Publisher 10.1.3.2.1 还可以同时下载桌面软件。这使您可以创建 RTF 模板以在报表中使用。有关 Oracle BI Publisher 的更多信息,请访问 OTN 网站。 请注意: 2) 构建模板时,如在尝试加载 XML 示例模板时出现以下错误,“Compile error in hidden module:Module_starter”,它是由 Windows 安全路径引起的。解决方法是:
3.3 配置 Application Express 以使用 BI Publisher 要将 BI Publisher 用作报表服务器,首先要访问 Report Printing 参数:
| ||||||||||||||
| 4. 在 Linux 上安装和配置 Oracle BI Publisher | ||||||||||||||
| 4.1 前提条件 此时,针对 Linux 的独立的 BI Publisher 下载似乎无法使用。一旦问题得到解决,我们将更新说明。现在,请从此处下载 Oracle 业务智能企业版 10.1.3.2: 安装 Oracle BI Publisher 之前,请确保已在系统中安装了 Java SDK 1.5.0。可从此处下载 Java SDK: http://java.sun.com/javase/downloads/index_jdk5.jsp 注:Sun 版本名称最初为 Java 2 平台,标准版 1.5.0(J2SE 开发工具包 1.5.0)。编号系统更改为 5.0 (J2SE 5.0)。1.5.0 和 5.0 指的是相同的平台和产品。 下载完文件后,解压缩下载的文件,然后启动 Oracle Installer。可以在 disk 1 文件夹中找到该程序。安装期间,您可以选择安装完整的套件或者仅安装选择的组件。如果安装只是用于 Application Express,则只需安装 BI Publisher 组件。 有关安装 Oracle 业务智能企业版 10.1.3.2 的更多信息,请参阅 Oracle 业务智能基础架构快速安装指南。 安装完 BI Publisher 之后,需要启动 OC4J。启动 OC4J 后,应打开 BI Publisher 开始页面以验证 BI Publisher 已启动并运行。如果您不确定在 Application Express 中进行此配置时需要使用的主机地址和端口,请参考打开 BI Publisher 启动页面后在浏览器的 URL 域中显示的主机地址和端口。 4.3 配置 Application Express 以使用 BI Publisher 要将 BI Publisher 用作报表服务器,首先要访问 Report Printing 参数:
| ||||||||||||||
| 5. 安装和配置 Apache FOP | ||||||||||||||
| 5.1 前提条件 随 Application Express 3.0.1 提供了与 Oracle Containers for J2EE (10.1.3.2) 结合使用的 Apache FOP 的受支持配置。Apache FOP 安装包含在 apex_install_directory/utlities/fop/fop.war 下的 Application Express 发行版本中。 请注意 — 从 Application Express 3.0.1 开始,与 Oracle Containers for J2EE (10.1.3.2) 结合使用的 Apache FOP 是一个受支持的报表服务器,但仅限于使用提供的文件进行安装的情形。不支持 Apache FOP 的其他配置。请将有关其他配置的疑问发布在 Application Express OTN 论坛上。 开始之前,您需要启动并运行 Oracle Containers for J2EE (OC4J)。已验证以下 OC4J 版本与下面描述的 FOP 解决方案配合使用。 第 1 步:安装 WAR 文件将 fop.war 文件(位于 apex_install_directory/utlities/fop 中)放在本地计算机上的一个可访问位置中。然后,遵循下方的说明或运行该 viewlet 以查看流程。
安装 FOP 之后,访问 Report Printing 参数:
| ||||||||||||||
| 6. 配置其他 XSL-FO 处理引擎 | ||||||||||||||
如果喜欢使用其他 XSL-FO 处理引擎,则需要创建一个终端,为上述 Apache FOP 示例提供的示例 JSP 提供相似的功能。仅 Oracle BI Publisher 和上述的与 Oracle Containers for J2EE (10.1.3.2) 结合使用的 Apache FOP 安装可用作受支持的报表服务器。请将有关其他 XSL-FO 处理引擎的疑问发布在 Application Express OTN 论坛上。 | ||||||||||||||
| 7. 在 Oracle 数据库 11g 中启用网络服务 | ||||||||||||||
默认为在 Oracle 数据库 11g 第 1 版 (11.1) 中禁用与网络服务的交互功能。因此,如果使用 Oracle 数据库 11g 第 1 版 (11.1) 运行 Oracle Application Express,则使用新的 DBMS_NETWORK_ACL_ADMIN 程序包将连接权限授予 FLOWS_030100 数据库用户的全部主机。授予这些权限失败将导致 PDF/报表打印问题,具体的说是您将收到以下错误消息: ORA-20001: The printing engine could not be reached because either the URL specified is incorrect or a proxy URL needs to be specified.请遵循 Oracle Application Express 安装指南中在 Oracle 数据库 11g 中启用网络服务部分给出的步骤。如果您收到了 ORA-44416,也可参阅其中的故障排除部分:运行前一脚本后的无效 ACL 错误。
| ||||||||||||||