В отчет можно добавить следующие виды ссылок:
Внутренний - Ссылка на местоположения в отчете. Использование mlreportgen.dom.InternalLink
объект.
Внешний - ссылка на местоположение вне отчета, такое как страница HTML или PDF файла. Использование mlreportgen.dom.ExternalLink
объект.
Для ссылки из одного места в документе в другое место в том же документе:
Определите цель ссылки путем добавления mlreportgen.dom.LinkTarget
объект документа или элемента документа. Чтобы убедиться, что целевое имя ссылки, которое вы используете для создания LinkTarget
объект действителен для всех типов отчетов, сгенерируйте имя цели ссылки при помощи mlreportgen.utils.normalizeLinkID
.
Определите ссылку путем добавления mlreportgen.dom.InternalLink
объект документа или элемента документа. Когда вы создаете InternalLink
объект, для targetName
аргумент, используйте целевое имя ссылки из LinkTarget
объект.
Например, можно включить About the Author
ссылка на заголовок с заголовком Author's Biography
.
import mlreportgen.dom.* import mlreportgen.utils.* d = Document('mydoc','pdf'); % Append a link target to a heading h = Heading(1,'Author''s Biography'); h.Style = {PageBreakBefore(true)}; linkID = normalizeLinkID('bio'); append(h,LinkTarget(linkID)); % Link to the target append(d,InternalLink(linkID,'About the Author')); % Append the heading append(d,h); close(d); rptview(d);
Использование mlreportgen.dom.ExternalLink
объект для создания внешней ссылки, задающий конечный объект ссылки и текст ссылки.
import mlreportgen.dom.* d = Document('mydoc'); append(d,ExternalLink('https://www.mathworks.com/','MathWorks')); close(d); rptview('mydoc','html');
Добавление текста или изображения в ExternalLink
или InternalLink
объект, использовать append
метод с этим объектом. Добавление Text
, Image
, или CustomElement
объект.
Вы можете создать числовую ссылку на страницу, на которой находится конечный объект ссылки. Например, вы можете создать ссылку на страницу в форме «См. страницу 15», где цель, на которую вы ссылаетесь, находится на объекте на странице 15. Для примера:
import mlreportgen.dom.*; d = Document('mydoc','pdf'); open(d); % Add target to heading object and append heading and % para text to document h = Heading1(LinkTarget('mytarget')); append(h,'Referenced Head'); p = Paragraph('Here is some paragraph text.'); append(d,h); append(d,p); % Add another page and insert the page reference % to the target p1 = Paragraph('The following paragraph contains the page reference.'); p1.Style = {PageBreakBefore(true)}; p2 = Paragraph('See Page '); p2.WhiteSpace = 'preserve'; ref = PageRef('mytarget'); append(p2,ref); append(p2,'.'); append(d,p1); append(d,p2); close(d); rptview(d.OutputPath);
В шаблоне PDF можно использовать <pageref>
элемент для создания такого рода ссылок. Ваша программа DOM API должна задать цель ссылки, которую использует элемент. The <pageref>
использует один аргумент: <pageref target="nameoftarget">
.
Для получения дополнительной информации об этом механизме смотрите mlreportgen.dom.PageRef
.
append
| mlreportgen.dom.ExternalLink
| mlreportgen.dom.InternalLink
| mlreportgen.dom.LinkTarget
| mlreportgen.dom.PageRef