Main Content

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

mlreportgen.dom.EmbeddedObject 类

命名空间: mlreportgen.dom
超类: mlreportgen.dom.ExternalLink

在文档中嵌入文件

自 R2020a 起

描述

使用 mlreportgen.dom.EmbeddedObject 类的对象将文件嵌入文档。将文件嵌入文档(而不是链接到文档)的优点是您可以移动文档而不移动目标文件。

您可以将 mlreportgen.dom.EmbeddedObject 对象追加到这些 DOM 类的对象:

  • mlreportgen.dom.Document

  • mlreportgen.dom.DocumentPart

  • mlreportgen.dom.Paragraph

  • mlreportgen.dom.TableEntry

  • mlreportgen.dom.TableHeaderEntry

  • mlreportgen.dom.ListItem

EmbeddedObject 对象追加到 DOM 对象的效果取决于文档输出类型和外部文件类型,如下表所述。

文档输出类型外部文件类型行为
Wordxlsx, pptx, docx

将外部文件嵌入文档并插入到嵌入文件的对象链接和嵌入 (OLE) 链接。

如果您打开文档但没有先使用 rptview 打开它,OLE 链接将显示一个占位符图像。使用 rptview 打开文档后,OLE 链接会显示嵌入文件内容的图像。要查看和编辑嵌入的文件内容,请双击图像。

Wordxlsxpptxdocx 之外的任何类型

不将文件嵌入文档中。插入指向外部文件的超链接。

PDF任何值

将外部文件嵌入文档并插入带有回形针图标的注释。要打开嵌入的文件,请双击该图标。

要看到回形针图标,您必须在 MATLAB® 之外打开 PDF。如果您仍然没有看到回形针图标,请尝试使用其他 PDF 查看器打开 PDF,例如 Adobe® Acrobat®。如果您需要使用不显示回形针图标的查看器打开 PDF,而不是嵌入文档,请考虑使用 mlreportgen.dom.ExternalLink 对象链接到该文档。

HTML任何值

将外部文件嵌入文档并插入嵌入文件的超链接。

在 HTML 文档中,仅当您在 MATLAB 之外打开文档时超链接才有效。

单文件 HTML任何值

不将文件嵌入文档中。插入指向外部文件的超链接。

仅当您在 MATLAB 之外打开文档时超链接才有效。

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

类属性

ConstructOnLoad
true
HandleCompatible
true

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

创建对象

描述

embObj = mlreportgen.dom.EmbeddedObject() 创建一个空的 EmbeddedObject 对象。要指定要嵌入的文件,请使用 Target 属性。

embObj = mlreportgen.dom.EmbeddedObject(path)Target 属性设置为要嵌入的文件的路径。

示例

embObj = mlreportgen.dom.EmbeddedObject(path,linkText) 还指定链接文本。仅当对文件的引用是超链接时,链接文本才适用。此构造函数创建一个 mlreportgen.dom.Text 对象来保存链接文本。

示例

embObj = mlreportgen.dom.EmbeddedObject(path,linkText,styleName) 指定用于链接文本的模板定义样式的名称。此构造函数创建一个 mlreportgen.dom.Text 对象来保存链接文本,并将 Text 对象的 StyleName 属性设置为 styleName

embObj = mlreportgen.dom.EmbeddedObject(path,linkTextObj) 使用 mlreportgen.dom.Text 对象来指定链接文本。

输入参量

全部展开

要嵌入的文件的路径,指定为字符向量或字符串标量。

链接文本,指定为字符向量或字符串标量。仅当对文件的引用是超链接时,链接文本才适用。

链接文本,指定为 mlreportgen.dom.Text 对象。仅当对文件的引用是超链接时,链接文本才适用。

用于链接文本的模板定义样式的名称,指定为字符向量或字符串标量。

属性

全部展开

要嵌入文档的文件的路径,指定为字符向量或字符串标量。

用于链接的样式的名称,指定为字符向量或字符串标量。StyleName 属性指定的样式必须在用于创建追加 EmbeddedObject 的文档的模板中定义。StyleName 属性仅当对文件的引用是超链接时才适用。

定义链接样式的格式,指定为 DOM 格式对象的元胞数组。Style 属性中指定的格式会覆盖模板定义样式指定的格式。Style 属性仅当对文件的引用是超链接时才适用。

此文档元素的自定义属性,指定为 mlreportgen.dom.CustomAttribute 对象的数组。自定义属性必须被此对象所追加到的文档元素的输出格式支持。

属性:

NonCopyable
true

mlreportgen.dom.EmbeddedObject 对象的父级,指定为文档元素对象。一个文档元素必须只有一个父元素。

属性:

SetAccess
private
NonCopyable
true

mlreportgen.dom.EmbeddedObject 对象的子项,指定为文档元素对象的数组。此属性包含使用 append 方法追加的文档元素对象。

属性:

SetAccess
private
NonCopyable
true

mlreportgen.dom.EmbeddedObject 对象的标签,指定为字符向量或字符串标量。DOM API 在创建此对象的过程中生成一个会话唯一标签。生成的标签形式为 CLASS:ID,其中 CLASS 是对象类,ID 是对象的 Id 属性的值。指定您自己的标签值,以帮助您确定在文档生成过程中出现问题时要查找的位置。

属性:

NonCopyable
true

数据类型: char | string

mlreportgen.dom.EmbeddedObject 对象的对象标识符,指定为字符向量或字符串标量。DOM API 在创建文档元素对象时会生成一个会话唯一标识符。您可以为 Id 指定自己的值。

属性:

NonCopyable
true

数据类型: char | string

方法

全部展开

示例

全部折叠

创建一个 Word 文档 CompanyInfo.docx,并将其嵌入到第二个 Word 文档 CompanyReport.docx 中。

import mlreportgen.dom.*

doc1 = Document('CompanyInfo','docx');
append(doc1, 'XYZ, Inc., makes widgets.');
close(doc1);

doc1Path = doc1.OutputPath;

doc2 = Document('CompanyReport','docx');
open(doc2);

para = append(doc2,Paragraph('About XYZ, Inc.'));
append(doc2, EmbeddedObject(doc1Path));
close(doc2);
rptview(doc2);

文档 CompanyReport.docx 显示嵌入文件的图像。

Document text, "About XYZ, Inc.", followed by a clickable image that reads XYZ, Inc., makes widgets.

要打开嵌入的文档,请双击图像。

创建一个 PDF,bio.pdf,并将其嵌入 HTML 文档,author.html。在 mlreportgen.dom.EmbeddedObject 构造函数中指定链接文本。使链接变为绿色。

import mlreportgen.dom.*
doc1 = Document('bio','pdf');
para = 'The author was born in New York, NY in 1970.';
append(doc1,para);
close(doc1);

doc2 = Document('author','html');
doc2.PackageType = 'unzipped';

embedObj = EmbeddedObject('bio.pdf','Author Biography');
embedObj.Style={Color('green')};
p = Paragraph();
append(p,embedObj);
append(doc2,p);

close(doc2);
rptview(doc2);

文档 author 显示嵌入文档的链接。

The link text is "Author Biography". The link and text are green.

要打开嵌入的文档,请在 MATLAB 之外打开 author/root.html

替代功能

mlreportgen.dom.DOCXSubDoc

要将 Word 文档插入另一个文档,可以使用 DOCXSubDocEmbeddedObject 类的对象。要决定使用哪个类,请考虑以下准则:

  • 如果您希望父文档最初显示指向子文档的链接,请使用 DOCXSubDoc 对象。当父文档链接到大纲视图中的一组子文档时,您可能希望首先显示链接。如果您希望父文档显示子文档内容,而不管您是在 Word 中打开父文档还是使用 rptview 打开,请使用 EmbeddedObject 对象。

  • 如果您想移动父文档而不移动子文档,请使用 EmbeddedObject 对象。

版本历史记录

在 R2020a 中推出

全部展开