报告模板
报告资源管理器允许您使用模板来格式化您的报告。模板是指定报告的固定内容、格式和布局的 HTML 或 Word 文档。您可以使用 Microsoft® Word 模 板来格式化 Word 和 PDF 报 告,使用 HTML 模板来格式化 HTML 和 PDF 报 告。MATLAB® Report Generator™ 附带一组默认的用于 PDF 和 Word 报 告的 Word 模板以及用于 PDF 和 HTML 报 告的 HTML 模板。您可以通过复制和自定义这些默认模板来创建自己的模板。
基于模板的输出类型
报告资源管理器提供了一组基于模板的报告输出类型。这些输出类型出现在报告生成器的根形式或 Reporter 组件中的文件格式下拉列表中。选择基于模板的输出类型会将可用于该输出类型的模板填充到相邻的下拉列表中,包括报告资源管理器的内置模板以及在 MATLAB 路径上或 MATLAB 会话开始时当前目录中存在的任何模板。默认情况下,报告资源管理器使用默认模板来格式化指定输出类型的报告。您可以从相邻的列表中选择来指定另一个模板。
基于模板的输出类型
Name on Form 组 件 | Name on Report 组件 | 生成 |
---|---|---|
直接 PDF | 直接 PDF (来自模板) | 格式化对象 (FO) 基于带有 PDF 特定扩展的 HTML 模板表示报告的内容和格式。FO 表示形式已转换为 PDF。 |
PDF (来自 Word) | PDF (来自 Word 模板) | 从 Microsoft Word 模板中获取 Microsoft Word 报 告,然后使用 Microsoft Word 将 Word 报 告转换为 PDF。此输出类型仅在 Windows 上可用。报告大小受 Word 的 分页容量限制,通常约为 500 页。 |
HTML | HTML (来自模板) | HTML 模板包中的 HTML 报 告包。报告和模板都是包含 HTML 文档、样式表、图像和 JavaScript 的 zip 文件。 |
多页 HTML (自 R2024a 起) | 多页 HTML (来自模板) | HTML 模板包中的 HTML 报 告包。报告和模板都是包含 HTML 文档、样式表、图像和 JavaScript 的 zip 文件。 |
单文件 HTML | 单文件 HTML (来自模板) | 来自 HTML 模板包的 HTML 报 告。HTML 报 告是一个单独的 HTML 文件,其中嵌入了报告的文本、样式表、图像和 JavaScript。 |
Word | Word (来自模板) | Microsoft 来自 Word 报 告的 Word 报 告。 |
模板与 XSL 和 DSSSL 样式表
除了模板之外,报告浏览器还支持使用 XSL 或 DSSSL 样式表来格式化报告。XSL 样式表是一个用 XML 方言(称为 XSL)编写的程序,它可以将报告的中间 XML 内容转换并格式化为 HTML 或 PDF 输出。DSSSL 样式表是一个用 Lisp 方言编写的程序,它可以将报告的中间 XML 内容转换为 Microsoft Word 输出。报告浏览器支持基于样式表的格式,从而提供与在模板可用之前的版本中使用报告浏览器开发的报告生成器的向后兼容性。您应该专门使用通过报告资源管理器开发的新报告生成器模板。这是因为模板比样式表具有明显的优势:
格式化:XSL 和 DSSL 样式表的格式选项有限。例如,报告中的所有标题和所有正文段落都必须具有相同的格式。相比之下,模板允许您使用 Microsoft Word 和 HTML 文档中可用的所有格式选项。
可扩展性:报告资源管理器使用基于 MATLAB 的文件转换器(称为
db2dom
)来转换基于模板的报告。报告资源管理器使用基于 Java 的文件转换器xslt
和JADE
来转换基于 XSL 和 DSSSL 样式表的报告。db2dom
转换器通常比xslt
和JADE
快一个数量级,并且 Word 和 HTML 输出不使用 Java 内存,PDF 输出使用更少的内存。因此,报告资源管理器可以使用模板生成比基于样式表的输出更大的报告。
组件样式
每个报告模板都包含一个样式表。此样式表(不要与 XSL 或 DSSSL 样式表混淆)是定义文本、段落、列表和表格格式(称为样式)的命名集的文档。在报告生成期间,报告资源管理器的文件转换器 db2dom
会将模板样式表复制到生成的报告中,并将样式名称分配给报告生成器组件生成的段落、文本、列表和表格。您用来显示或打印报告的程序(例如 HTML 浏览器或 Microsoft Word)使用样式来格式化报告。
报告资源管理器的默认模板定义了格式化报告管理器从报告设置文件生成的报告所需的所有样式。为了与其他风格区分开来,这些风格的名称以前缀 rg
开头,例如 rgParagraph
。您可以通过在默认模板的副本中自定义这些样式的定义(但不是名称)并使用该副本生成报告来修改报告的外观。
您还可以在自定义模板中定义自己的样式,并将其分配给对话框包含 StyleName 属
性的组件。具有 StyleName 属
性的组件包括文本和 段落组件。通过这种方式,您可以自定义组件各个实例的外观。例如,段落组件的默认样式是 rgParagraph
。通过创建并将您自己的样式(例如 myParagraph
)分配给特定的段落组件,您可以将此组件的输出外观与具有默认 rgParagraph
样式的段落的外观区分开来。
组件模板
报告资源管理器的默认模板包含一个组件模板库。组件模板库是定义报告资源管理器组件(例如标题页面组件和 Chapter/Section 组件)模板的文档。库中的每个模板都有一个名称,例如 rgRectoTitlePage
,这使得报告生成器能够在库中找到组件模板。组件库允许单个模板(称为主模板)包含格式化从主模板生成的报告所需的所有模板。
您可以通过在默认模板的副本中自定义报告组件(例如标题页)的模板并使用该自定义模板生成报告来更改报告组件的格式。您还可以在形式组件的主模板中创建和存储子表单组件的模板。通过这种方式,您可以创建具有自定义内容和自定义格式的自定义报告组件。例如,您可以创建自定义标题页模板,并将其与子表单组件一起使用来生成包含标题页面组件未定义的内容(例如签名模块)的标题页。
组件空位
报告资源管理器的默认组件模板包含占位符(称为空位),用于指定相对于模板的固定内容和其他生成的内容插入生成内容的位置。例如,标题页面组件的模板包含报告标题、副标题、作者、摘要等的空位。报告浏览器会在报告生成过程中用生成的内容替换这些空位。例如,它将标题页面模板中的标题空位替换为标题页面组件的 Title 属 性指定的标题。
您可以通过重新排列或删除其空位来更改指定内容的组件的布局和内容。例如,您可以通过移动或删除标题页面组件模板中的字幕空位来删除或调整标题页副标题的位置。您还可以在为形式和 子表单组件创建的模板中包含空位,并使用报告生成器设置文件中的模板空位组件填充这些空位。例如,通过这种方式,您可以生成完全符合您的标题页布局和格式要求的标题页。
模板缓存
第一次在 MATLAB 会话中打开报告资源管理器时,它会在 MATLAB 路径中搜索模板。它将找到的所有模板存储在缓存中。它还将您在会话中创建的所有模板添加到缓存中。随后,它会在缓存中搜索您指定的、但不在当前目录中的模板。这样就避免了每次报告资源管理器需要根据模板生成报告时搜索 MATLAB 路径。如果您尝试在 MATLAB 会话开始时使用不在 MATLAB 路径上的模板,则报告资源管理器将指示它找不到该模板。在这种情况下,您可以将 MATLAB 工作目录更改为模板目录,或者将目录添加到 MATLAB 路径并刷新缓存。要刷新缓存,请执行
>> rptgen.db2dom.TemplateCache.getTheCache(true);
在 MATLAB 命令行。
相关示例
- 创建报告模板
- 使用模板生成报告
- 自定义 Microsoft Word 报 告样式
- 自定义 Microsoft Word 组件模板
- 自定义 Microsoft Word 标 题页模板
- 创建自定义 HTML 或 PDF 模板