1、水晶报表1 水晶报表专业版 11.1 概述 11.2 广泛的数据访问 21.3 访问任何数据源 21.4 数据访问控制 21.5 强大的报表设计功能 31.6 可视化的设计环境 31.7 强大的公式语言 31.8 丰富的数据表现力 31.9 提高生产力 31.10 提高报表设计的效率 31.11 减少报表维护量 31.12 用户交互性 31.13 报表查看 31.14 报表交互性 31.15 报表导航 32 Crystal Reports Server 32.1 概述 32.2 功能和组件 32.3 客户利益 32.4 信息 32.5 问题 32.6 需求 32.7 结论 33 水晶报表.NE
2、T 开发特性 33.1 概述 33.2 .NET 集成开发环境中内置的功能 33.3 水晶报表开发版的功能特点 34 水晶报表 Java 开发特性 34.1 功能概述 34.2 水晶报表开发版的功能特点 31 水晶报表专业版1.1 概述销售管理团队希望更新全球的销售预测,以便在季度会议上演示。不幸的是,所有的订单和销售数据都保存在遍布全球的各自独立的数据库中。如果不能在一张报表中访问所有的数据源,就只能创建多张报表,但是多张报表的信息很难比较。最后,销售团队只能演示不太准确的修改过的销售预测。您需要为一个潜在的新客户做一场重要的演示,需要通过专业的报表吸引客户。然而,您只能设计出简陋的展示原始
3、数据的报表,缺乏生动的图形。结果,您最后还是输给了能够提供专业展现形式的报表的竞争对手。您花费了大量的精力为财务团队创建财务报表。由于财务团队对公司财务信息的需求不断变化,但是他们又不能自己修改报表,因此每次都必须通过您来更新和优化报表。但是您还有其他大量的报表工作要完成,因此不能及时提交满足财务团队的需求。结果导致,财务团队经常无法得到最新数据的报表,或者报表的格式不能满足其需求。以上这些情景是不是似曾相熟? 您可以用一个报表工具访问所有的数据源吗?您能够为客户创建专业的报表吗?您常常为了满足公司变动的商业需求而花费大量的时间修改和维护报表吗?Crystal Reports?被广泛验证过的世
4、界级标准的解决方案让您根据关系型数据库、OLAP、XML 或者其他自定义的数据源设计出灵活的、丰富的报表。Crystal Reports 提供了 100 多个格式化选项,让您可以完全控制数据的访问和表现形式。最终用户可以在报表中进行钻取、对信息进行排序和过滤、打印报表、甚至修改报表以获得所需的信息。您也可以将报表导出为 PDF、Excel 和 Word 等格式。在 Crystal Reports XI 中,引入了包括动态级联在内的多种特性,有助于提高报表的开发效率,减少冗余的报表维护工作,让您可以将精力投入到更加重要的任务上。1.2 广泛的数据访问从多个数据源访问数据和合并数据通常是很复杂的事
5、情,需要多个工具。通过 Crystal Reports 所提供的强大的数据驱动和灵活的访问形式,您可以连接所需要的数据。1.3 访问任何数据源通过 Crystal Reports 所提供的广泛的数据访问特性,您可以简单地访问企业数据以满足最终用户的信息需求。无论您需要与数据库、文件、日志、企业应用程序还是程序单元建立本地、ODBC、OLE DB 或 JDBC 连接,Crystal Reports 都是满足您所有需求的唯一一种工具。Crystal Reports 内置了超过 35 种数据驱动,可以直接访问任何关系型数据库、OLAP、XML 或者内存中的数据,Crystal Reports XI
6、中升级了 XML、JDBC、IBM DB2 和Exchange 数据驱动,为您提供了更多的数据访问选项。此外,使用 Crystal Reports 也可以很容易地在同一张报表中展现来自多个数据库不同语言的数据。1.4 数据访问控制Crystal Reports 可以让您灵活地控制数据连接。您可以写 SQL 命令,或者利用Crystal Reports 强大的查询语句生成功能。此外,业务视图可以消除报表从开发状态向产品状态迁移的繁琐工作。1.5 强大的报表设计功能使用 Crystal Reports 高度灵活性的设计环境,您可以更加快速简便地设计报表,创建高度格式化的、展现形式丰富的报表,满足客
7、户的信息需求。1.6 可视化的设计环境提供直观的、可拖放对象的、交互性用户界面,提供可选的向导工具以简化常见的报表任务,例如连接数据源、选择、分组、排序和汇总。初学者可以设计和应用自定义的报表模板,为数据访问及其展现格式制定标准,以确保报表之间的设计风格一致。您也可以将现有的报表作为模板。1.7 强大的公式语言Crystal Reports 提供可扩展的公式语言,内置了超过 160 种函数和操作符,以控制报表的格式、复杂的逻辑和数据选择。Crystal Reports 提供了零代码的公式向导。通过使用自定义的函数,您可以在报表之间共享和重用公式逻辑,从而避免冗余的公式创建。您也可以创建数据库中
8、所没有的汇总信息等。1.8 丰富的数据表现力您可以创建几乎任何格式的报表,包括交叉表、TopN/BottomN 报表、汇总/钻取报表、表单、邮件标签、OLAP、子报表等。Crystal Reports 提供了完整的布局和设计控制项,在零代码的情况下帮助您设计专业的、像素精确化的报表。通过使用参数可以减少报表的数量;使用分组和排序可以将数据按逻辑进行组织;通过选择合适的地图和图形类型增强报表的表现力,例如柱状图/3 维柱状图、饼图、圆环图、曲线图、甘特图、漏斗图、XY 散点图、区域地图等。通过 Crystal Reports 还可以创建层次性的报表而不仅仅是关系型报表,层次性报表适用于组织结构图
9、。1.9 提高生产力Crystal Reports 可帮助您提高报表制作的速度,减少多余的报表维护工作。 ,因此您可将更多的时间用于关键任务。1.10 提高报表设计的效率您可以在中央存储库中保存公共报表单元、文本对象、定制函数、SQL 命令及图像等,单点更新,从而实现在多张报表中共享重用资源。Crystal Reports 也有助于确保您所设计的报表在 web 环境和导出文件中格式保持一致。例如,您可以在设计时预览报表,在发布到web 上之前预览其 HTML 形式。1.11 减少报表维护量Crystal Reports XI 引入了动态级联参数,您可以在轻易地在一张报表中满足多个最终用户的需求
10、,从而减少报表维护量。当数据库内容变化时,参数会自动反应出最新信息,最短用户可以创建最新的、具有特性的报表。对应用程序开发人员来讲,Crystal Reports 有利于最大程度地降低因最终用户规范的不断变化而导致的表示层维护要求。它支持数据访问和报表设计与业务逻辑的分离,因此您可以方便地增加新报表,或修改现有报表,而不会影响核心业务逻辑。Java 和.NET 开发人员可以利用 Crystal Reports 中的非绑定区域,并在运行时将应用程序绑定到这些区域,从而充分利用数据绑定的优势。您可以使用相关性查询功能来确定断开的连接、公式错误及相关性问题。这可以显著降低您在质量保证上所花的时间。1
11、.12 用户交互性Crystal Reports 有助于在报表中增加用户交互性,最终用户可以在没有 IT 人员介入的情况下优化报表。1.13 报表查看有了 Crystal Reports,将减少最终用户对 IT 部门的依赖性,为更加明智的决策奠定基础。Crystal Reports 让最终用户能够以熟悉的格式在熟悉的环境中浏览数据、和数据进行交互。您可以部署现成的 Crystal Reports 瘦客户机及零客户机浏览器,或是选择对其进行定制,以便让最终用户随时享用报表打印、导出、刷新和搜索功能。最终用户还能够向下钻取图表或数据组,无需额外的编码。最终用户也可以选择报表中预定义的参数,只查看部
12、分数据产生的报表。1.14 报表交互性Crystal Reports 支持大量行业标准的导出格式,包括 Excel、 Word 和 PDF。而且新的RTF 导出功能使用户能够方便地在熟悉的字处理环境下增强和扩展报表。对于移动用户,还提供了离线报表浏览器,因此可以在无需连接网络的情况下浏览信息。1.15 报表导航Crystal Reports 包含有告警功能,当超越了一定的数据条件或阀值水平时,能够方便地提示用户。您还可以在报表和其他对象之间设置连接,引导用户浏览相关信息,而无需定制编码。例如,可以从人员流失的统计报表连接到人员流失的详细报表,再通过超级链接访问 ERP 系统中的人力资源模块。通
13、过导航功能,您可以指定报表对象之间的链接路径。2 Crystal Reports Server2.1 概述做为 Crystal Reports 产品族中的新成员, Crystal Reports Server 是个全新的解决方案,能使企业创建、管理并且通过网络或者嵌入到平台应用来发布报表。它处理了报表流程中的所有步骤 - 从数据访问和报表设计,到报表的管理和分发,乃至和接口和应用程序进行集成。另外,它包含了 Crystal Reports XI - 报表创建的世界标准 - 使得在 web 上共享现有的或新的水晶报表更加容易。由于基于单个服务器上部署的设计, Crystal Reports Se
14、rver 成为理想的中小型商业的报表解决方案。2.2 功能和组件Crystal Reports Server 处理全部企业报表流程。客户可以使用它:访问任何数据源设计任何报表在 web 上分发和管理报表将报表与接口和应用集成以最小的 IT 企业管理管理费报表设计工具(全部驱动和访问方法)排程(包括目标设置) Business Views 安全(包括活动目录, LDAP , Kerberos 和 NT 授权机制)报表发布工具 InfoView web 门户接口 软件开发工具包( SDKs )接口集成包(包括 SharePoint ) 中央管理控制台各种浏览器(包括离线浏览器)2.3 客户利益客户
15、将在下列几个方面受益: 更加有效的进行报表开发 减少访问多维数据源的复杂性 减少创建和发布信息的成本 报表/数据安全 为提高最终用户的决策提供针对性并且最新的信息 减少维护报表的成本 重点突出报表应用 大大减少从网络服务器上清除报表的应用处理效率 提高最终用户与应用程序的交互2.4 信息Crystal Reports Server 是个全新的解决方案,能使企业创建、管理并且通过网络或者嵌入到平台应用来发布报表。它处理了报表流程中的所有步骤 - 从数据访问和报表设计,到报表的管理和分发,乃至门户和应用程序的报表集成。另外,它包含了 Crystal Reports XI - 报表创建的世界标准 -
16、 使得在 web 上共享现有的或新的水晶报表更加容易。为快速部署和推广我们提供一年的技术支持和维护。Crystal Reports Server 通讯可被分为四个主要方面:1. 访问和提供任何你所需要的数据 灵活和无局限的数据连接 运用高度格式化的报表灵活表达复杂信息 自动的向导功能和可重复利用的模板加速报表设计2在恰当的时候向恰当的人发布恰当的信息在你需要的时候实时并且定制发布的报表为快速的信息访问提供可升级的和可靠的报表服务可以交互式的定制个性化的报表3.与程序和接口的广泛集成提供在应用程序里浏览,打印,打出和修改报表的大量的 SDKs支持主导的 web 应用服务和平台为迅速部署提供的建好
17、的接口集成组件4.用先进的科技驱动你的商务所提供的报表解决方案从超过 500 个 ISV 中挑选的嵌入到主导的 Microsoft,SAP,Borland,BEA 和 IBM 这些平台应用软件为快速应用提供大量的报表专家向导理解中端市场,小规模的应用具有同样的需求2.5 问题“商务软件通常不能满足需求(中等企业) ,而且能满足需求的软件通常在价格上难以接受。 ”2.6 需求“在当今的经济环境中,有效地进行数据管理和迅速地进行数据分析成为必需。 ”2.7 结论“对商务智能的需求超过了商务规模本身所能承受的限度。 ”Crystal Reports Server 致力于中端市场对于中小企业完整的报表
18、解决方案在 Web 上创建,管理和发布水晶报表Windows 客户端报表设计器 世界上最好的!基于 Web 的报表管理和发布 基于可靠的平台!用可靠的科技武装你的商务拓展现有投资于 Crystal Reports使用世界上高端的软件开发商 (IBM, Peoplesoft (Oracle), SAP, Microsoft, Borland, BEA)的报表解决方案任何时候都可以拓展到 BusinessObjects Enterprise对 Crystal Reports Server 的定位满足你所有的创建,管理和发布报表的需求以你所需的方式访问和呈现数据所有的数据源驱动以及业务视图管理器具有
19、向导和专家的报表设计器在恰当的时候向恰当的人发布恰当的信息报表发布向导报表排程安全 (fine-grain + 3rd party support)报表处理服务器 (Windows and Linux)与接口与应用的广泛集成软件开发组件(SDKs) (Java, .NET, and COM)接口集成组件3 水晶报表.NET 开发特性水晶报表开发版提供开发与部署工具包,能直接将动态报表的建立和访问嵌入到 WEB 应用中。3.1 概述使用水晶报表开发版,用户可以:包括水晶报表专业版的所有功能和组件访问任何数据源包括:Oracle, DB2, Sybase, NCR, SQLServer, MySQ
20、L, MS Access, ODBC, JDBC, OLEDB, XML, Javabean, ADO.NET, COM, MS Excel, MS Exchange, Informix, Pervasive SQL, Lotus Notes, ACT!6, Borland Database Engine, Text, File System, xBase, MS Outlook, NT Event Log, Microsoft IIS Log, Web Log 等 35 余种。设计报表报表使用者可以使用视觉化报表设计工具来设计高度格式化、互动式以及有专业质感的报表。在 web 上发布和管理报
21、表 ?通过开发版提供的 SDK,可以将报表轻易的发布到网络,让组织内的各成员都能作出更好的决策,可以将报表输出成最终用户便于使用的格式(Excel、RTF、PDF、Word 等) 。将报表与接口和应用集成水晶报表可以直接产生 HTML 文件,允许开发人员将精力用于设计应用程序的商务逻辑上,而非复杂耗时的程序设计工作。将应用程序开发与报表设计工作明确区分,让开发人员专注与应用程序开发,而报表撰写者则更专注与报表设计。3.2 .NET 集成开发环境中内置的功能Crystal Reports For .net 已经作为报表标准,集成在 MicrosoftVisual Studio .net 2003
22、 以及 Borland C# Builder 和 Delphi 2005 中,您可以应用它来创建、集成和查看报表并将之整合为您的应用程序的一部分。集成在以上开发环境中的 Crystal Reports For .net 特别版提供以下功能:在您熟悉的应用程序设计器中直接建立报表。在您的应用程序中使用 Crystal Reports 强大的报表创建、集成和传递工具代替手工编码,提高劳动效率。通过一个 XML Web 服务模块,可以向任何设备上发送交互的、高度图形化的报表。在 windows 胖客户端的环境下发布像素级格式精确化的报表。在.net 项目中通过使用已经存在的水晶报表以及报表创建技巧能
23、够节省时间并且只用写很少的代码。集成在以上开发环境中的 Crystal Reports For .net 特别版具有以下特性:所见即所得的集成报表设计器在 Visual Studio .net、Delphi 和 C# Builder 开发环境中可以直接无缝地创建高质量的报表导出到常用格式允许最终用户生成、打印以及导出报表到一个可选择的行业标准格式,包括Excel、PDF、RTF 文件,而且不需要任何的编程工作。ADO.NET 数据集支持连接任何动态实时的数据,使用各种可控数据源,并可以连接到 XML 报表 WEB 服务。WebForm 和 WinForm 报表查看器控制通过在应用程序中使用 W
24、ebForm 和 WinForm,可以快速集成并显示报表。运行对象模块通过该模块可以实现程序运行时对报表的自定义柚茫 梢愿谋浔 淼拇笮臀恢茫 箍梢源 莶问约敖械锹缴矸菅橹?BR?集成的帮助系统快速解决问题,学习技术以及使用开始向导、实例和 API 参考。在 Visual Studio .net 中有动态帮助和 F1 支持。XML 报表 WEB 服务(*该特性只在 Visual Studio .net 中可用)只需要鼠标一点就可以将水晶报表发布为 XML 报表 WEB 服务Crystal Enterprise Web 服务(*该特性只在 Visual Studio .net 中可用)为了快速的报
25、表集成,Crystal Enterprise Web 服务允许将在 Crystal Enterprise 中管理的报表应用到您的应用程序中去。3.3 水晶报表开发版的功能特点Crystal Reports Developer 和 Crystal Reports Server XI 相对于 Visual Studio .net 2003、C# Builder 以及 Delphi 2005 中集成的 Crystal Reports for .NET 来说在性能上有一个很大的提升。革新的快速报表设计、改进的 web 集成、强大的性能表现和报表管理让.net 应用程序的报表提升到一个新的高度。对于开发
26、、测试以及小的部署需求来说,在您的集成开发环境中的 Crystal Reports 特别版本是满足需求的。如果您的需求要更大些,Crystal Reports Developer 和 Crystal Reports Server XI 就是为了满足中小企业的运行的。为了最大的功能和升级性,包括多级安全,运行时私人的特别报表,高量报表的排程或者其他企业报表需求,您可以很简单的就把您的应用升级到 BusinessObjects Enterprise XI。水晶报表开发版比集成环境中的特别版新增的主要功能有:1. 增加的数据源连接连接几乎所有的数据源:包括企业级的数据源:(Oracle,IBM DB
27、2,Sybase,Informix)XML自定义 JavaBeans 以及 COM 数据源ODBC,OLEDB,ADO.NET2. 改进的数据读取过程改进后的过程使用更少的内存,提高了数据读取过程和报表呈现的性能3. 增加的导出格式可以导出为常用的格式,包括:Adobe PDFMicrosoft ExcelMicrosoft WordXML(仅适用胖客户端)RTF/CSVHTML4. 先进的浏览器打印和多功能导出应用新提供的快速打印和导出按钮或者应用新的瘦客户端 ActiveX 打印控件可以做到在浏览器中直接打印或导出全部和部分的报表。5. 独立的报表设计器与程序开发分开的报表设计使报表维护更
28、容易,应用程序开发更快捷。6. 设计时可预览的报表在报表设计器中预览报表可以让报表设计更加快速准确。7. 更多的报表设计和格式选项强大的报表设计和格式选项包括:快速格式的“格式刷”功能公式工作室甘特图和量度图可以自定义创建 WEB 窗体的工具栏地图OLAP 报表8. 组件重用加速报表设计在储备库中储存常用的关键报表对象可以加速报表设计,包括文本对象、SQL 命令、位图文件和自定义函数。对象可以在一处进行重用、共享以及更新,以便快速设计和维护报表。通过自定义函数,不需要为多张报表中共通的商务逻辑重复创建公式。9. 报表储备库报表储备库为报表提供集中的存储空间。这就解决了被多个应用调用时,一张报表
29、需要复制多次的问题10. 动态图像位置图像可以存储在数据库外部,不需要固定在报表中,这样就节省了资源,减少了报表文件的大小,并可以简单的做到复用。11. 应用于无线设备的水晶报表发送新的或者已经存在的报表组件到移动设备,包括 WML 电话、RIM Blackberry 无线平台以及 Compaq iPAQ 设备,你不需要为这些无线和移动设备重新制作报表。12. 简单的部署改进后的合并模块为部署您的应用程序提供了捷径。13. 报表管理和发送可以按照事件、日历或特殊时间点来制定计划。并且有以用户、对象和目录为基础作安全机制。4 水晶报表 Java 开发特性水晶报表开发版提供开发与部署工具包,能直接
30、将动态报表的建立和访问嵌入到 WEB 应用中。Crystal Reports 已经作为业界报表标准,集成在 IBM? Rational? Application Developer for WebSphere? Software (RAD)、BEA WebLogic Workshop 以及 Borland Jbuilder 中,通过这套有效的报表开发工具集,可以极大地简化和加速在 jsp 页面中访问、格式化、集成数据的过程。4.1 功能概述1、通过使用 Crystal Reports for Java,可以:轻松的连接到多种数据源包括:Oracle, DB2, Sybase, NCR, SQL
31、Server, MySQL, MS Access, ODBC, JDBC, OLEDB, XML, Javabean, ADO.NET, COM, MS Excel, MS Exchange, Informix, Pervasive SQL, Lotus Notes, ACT!6, Borland Database Engine, Text, File System, xBase, MS Outlook, NT Event Log, Microsoft IIS Log, Web Log 等 35 余种。快速的在直观的可视化设计器中格式化数据报表使用者可以使用视觉化报表设计工具来设计高度格式化、
32、互动式以及有专业质感的报表。最大程度地减少在 JSP 页面中嵌入动态的、格式化的数据所花的时间通过将数据连接和呈现从核心的应用程序代码中分离开来,减小应用程序的维护成本轻松的将报表导出到标准的格式,如 PDF、可编辑的 RTF 格式、RPT 格式、Excel 等。2、方便的数据访问和格式化Crystal Reports for Java 显著的减少了手工编写 HTML 的数量。通过使用直观的可视化设计器,开发人员可以快速的连接数据并将它转换到动态报表模板中。一个可视化的数据源浏览器简化了 JDBC 数据连接。通过利用上百种格式化编辑选项,包括分组、排序、公式、参数、交叉表和向下钻取等,提供丰富
33、的终端用户界面。3、最大程度地减少在 JSP 页面中嵌入将动态数据的时间在 Java IDE 中,可以快速的将一个新的或是现有的报表文件加入到您的项目中作为报表源,从而将报表作为项目的一部分并部署到您的 web 应用程序中。内置的向导在整个过程中引导您,减少手工编写相似功能所需要的重复工作。4、简化应用程序开发、减少维护费用Crystal Reports for Java 通过耦合数据呈现和核心的业务代码,可以增强应用程序的灵活性。由于数据连接和呈现不是硬编码进入应用程序,Web 的设计人员在创建、更改报表或者更改界面时不用担心影响核心代码。这可以使应用程序的开发人员专注于核心业务逻辑。通过分
34、开这些元素,由于核心应用不会被易变的用户界面需求所影响,可以减少在应用程序维护上的投入。5、数据呈现的通用标准作为跨平台的报表标准,Crystal Reports 很好地与主流的 Java 和.NET IDE 集成在一起。开发人员使用一种通用标准的报表技术就可以满足所有的数据呈现和信息发布的需求。现有的水晶报表文件也可以被你的 J2EE 应用程序重用。6、扩展应用程序以满足新的需求Crystal Reports 提供了多种部署选择,其可扩展性可以满足业务增长的需要。对于开发、测试以及小的部署需求来说,在您的集成开发环境中的 Crystal Reports 特别版本是满足需求的。如果您的需求要更
35、大些,Crystal Reports Developer 和 Crystal Reports Server XI 就是为了满足中小企业的运行的。为了最大的功能和升级性,包括多级安全,运行时私人的特别报表,高量报表的排程或者其他企业报表需求,您可以很简单的就把您的应用升级到 BusinessObjects Enterprise XI。4.2 水晶报表开发版的功能特点100的 Java 报表组件在 J2EE 的应用程序中将报表模板转为高度格式化的 DHTML 页面。当由于需要额外的扩展性和功能而对应用程序升级时,这种功能强大的组件完全和 Business Objects 的企业级报表技术兼容。Ja
36、va Viewer API在零客户端的环境中为您的最终用户提供可定制的报表交互性。最终用户可以向下钻取数据、在链接的内容间跳转、或者将报表打印和导出到各种文件格式,包括 PDF 和 RTF 格式。定制标签库减少了将报表嵌入到 jsp 页面中所需的代码量。JavaServer Faces Crystal Reports 查看器JavaServer Faces Crystal Reports 查看器能让 java 开发者很方便把一个 Crystal Reports 查看器集成到任何用 JSF 框架实现的 J2EE Web 应用程序中。这种新的查看器提供了和 DHTML 报表页面查看器同样的功能,并
37、且 Java 报表组件(JRC) 、报表应用程序服务器(RAS)和页面服务器(Page server)都支持这种查看器。它包含一组可定制的 JSF 标签,而且很容易的嵌入到 JSP 页面中。Report Parts Viewer 的支持Java 报表组件(JRC)支持 Report Parts Viewer,。通过这种查看器,最终用户可以单独的查看报表的一部分,比如图表、文本或者字段对象。XML 数据源的支持支持全新的 xml 数据驱动,从而可以从 web 服务和 xml 文件中获取报表数据。Java 用户程序库(UFL)Java 用户程序库(UFL)让 Java 开发人员扩展水晶报表设计器中公式工作室的函数(位于 Crystal Reports 设计器中)。这就意味着水晶报表设计器的用户可以为他们的报表添加用户定制的函数。Java 用户程序库在 Java 报表组件(JRC)和水晶报表设计器中得到支持。Java 报表组件(JRC)中改进的报表功能改进的层次分组功能以更好的支持向下钻取和缩排;参数化的组排序和 top N.这个特性可以基于公式来指定组排序的次序。相似地,在组排序中的最前 n 个、最后 n 个、最高百分比和最低百分比的值都可以通过公式来指定。支持水平的页面序号;支持解释 HTML 文本;在报表处理和 PDF 导出性能方面的提高。