主要内容

本页采用了机器翻译。点击此处可查看英文原文。

mlreportgen.dom.TemplateHTMLStyle 类

命名空间: mlreportgen.dom

解析 HTML 模板中现有的样式

自 R2024a 起

描述

使用 mlreportgen.dom.TemplateHTMLStyle 类的实例创建 HTML 模板中现有样式的文档对象模型 (DOM) 表示形式。此类仅在 HTML 样式表中生成样式表条目。PDF 和 DOCX 模板样式表忽略此类。此类使您能够看到模板中已经存在哪些样式。

此类表示由 HTML 模板(.htmtx.htmt)文件定义的 HTML 样式。打开 HTML 模板将为模板文件定义的每个样式创建一个包含此类实例的数组。您可以使用存储在 TemplateStyles 属性中的样式表的 Stylesheet 属性来访问样式。使用此类可以查看和修改 HTML 样式的 CSS 选择器和格式。您可以使用模板样式表的 removeStylereplaceStyle 方法删除或替换 HTML 样式。

此类仅与以下 MATLAB® Report Generator™ 输出类型兼容:

  • "html"

  • "html-file"

  • "html-multipage" (自 R2024a 起)

mlreportgen.dom.TemplateHTMLStyle 类是一个 handle 类。

类属性

HandleCompatible
true

有关类属性的信息,请参阅类属性

创建对象

描述

style = TemplateHTMLStyle(selector,rawFormats) 创建一个 HTML 样式,并将 SelectorRawFormats 属性分别设置为 selectorrawFormats 的值。使用此构造函数来定义使用更复杂的 CSS 选择器或没有等效 DOM 类的格式的 HTML 样式。

示例

属性

全部展开

Selector 属性的值中解析出的样式名称,以字符向量形式表示。

属性:

GetAccess
public
SetAccess
private
NonCopyable
true

数据类型: char

样式的 CSS 选择器,指定为字符串标量。该值包括类名和元素名,以及其他选择器模式,如 "nth-child"。例如,格式化表的偶数行的表样式 "exampleTable" 会将 Selector 属性设置为 "tr:nth-child(even).exampleTable"

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

数据类型: char | string

样式的 CSS 属性和值,指定为字符串标量。必须使用分号分隔每个 CSS 属性和值对。例如,格式化颜色和字体粗细的样式的 Selector 属性为:"color:blue; font-weight:bold;"

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

数据类型: char | string

该类忽略此属性。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

标记,指定为字符向量或字符串标量。DOM API 在创建此对象的过程中生成一个会话唯一标记。生成的标记形式为 CLASS:ID,其中 CLASS 是对象类,ID 是对象的 Id 属性的值。使用此值来帮助确定在文档生成过程中出现的问题的位置。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

数据类型: char | string

目标标识符,指定为字符向量或字符串标量。DOM API 在创建文档元素对象时会生成一个会话唯一标识符。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

数据类型: char | string

示例

全部折叠

查看 HTML 模板中现有的样式,修改该样式,并用修改后的样式替换现有样式。

创建 HTML 模板并检查默认样式

根据默认 HTML 模板创建一个新模板并检查目录的样式。

导入 DOM API 命名空间,这样您就不必使用完全限定名称。

import mlreportgen.dom.*

使用默认 HTML 模板创建模板。

t = Template("myTemplate","html");

打开模板并获取样式表。

open(t);
stylesheet = t.Stylesheet
stylesheet = 
  TemplateStylesheet with properties:

     TemplateStyles: [1×31 mlreportgen.dom.TemplateHTMLStyle]
         TextStyles: []
    ParagraphStyles: []
       LinkedStyles: []
         ListStyles: []
        TableStyles: []
                Tag: 'dom.TemplateStylesheet:759'
                 Id: '759'

获取样式名为 "toc" 的样式。

tocStyles = getStyle(stylesheet,"toc");

查看目录样式的第一个,并注意 RawFormats 下的列表样式当前设置为 none

tocStyles(1)
ans = 
  TemplateHTMLStyle with properties:

          Name: 'toc'
      Selector: 'ol.toc > li'
    RawFormats: ' list-style:none; '
       Formats: []
           Tag: 'dom.TemplateHTMLStyle:760'
            Id: '760'

修改目录以使用罗马数字表示章节

通过更改目录样式以使用罗马数字而不是默认数字来修改新模板。

此模式匹配以 "list-style" 开头并以 "none;" 结尾的规则。

pat = "list-style" + wildcardPattern("Except",";") + "none;";

"list-style-type: none" 和 "list-style: none" 替换为 "list-style-type: upper-roman"

for tocStyle = tocStyles
    tocStyle.RawFormats = replace(tocStyle.RawFormats,pat,"list-style-type:upper-roman;");
end

创建一个新样式,将目录使用的字体设置为 Courier New。

newHTMLStyle = TemplateHTMLStyle("ol.toc a","font-family:""Courier New"";");
addStyle(stylesheet,newHTMLStyle);

关闭模板。

close(t);

版本历史记录

在 R2024a 中推出