使用模板自定义 PDF 报告的页面大小和边距
此示例显示如何使用报告 API 报告模板自定义 PDF 报告中的页面大小以及页边距、页眉、页脚和装订线的大小。或者,您可以使用程序化方法。如果您计划对模板进行其他修改,请使用基于模板的方法。否则,请使用程序化方法。有关使用程序化方法的示例,请参阅 通过编程自定义报告的页面大小和边距。
默认情况下,报告 API 会生成 8.5 × 11 英寸的纵向页面,边距为 1 英寸。页眉和页脚各为半英寸宽,并且装订线为零像素。您可能需要在报告中更改这些尺寸。例如,如果您正在为欧洲地区生成报告,则可能需要生成 A4 页面。此示例显示如何生成 A4 页面。使用相同的步骤生成其他页面尺寸。
要更改报告 API 报告的页面尺寸,您必须更改 mlreportgen.report.TitlePage
、mlreportgen.report.TableOfContents
和 mlreportgen.report.Chapter
报告器的模板指定的尺寸。此示例展示如何修改和使用每个报告器的 PDF 模板。
自定义标题页 PDF 模板
创建 mlreportgen.report.TitlePage
报告器默认 PDF 模板的副本。
mlreportgen.report.TitlePage.createTemplate(... "titlePageTemplate.pdftx", "pdf");
解压模板。
unzipTemplate("titlePageTemplate.pdftx");
打开解压后的 titlePageTemplate
文件夹。
在 HTML 或文本编辑器中,打开 docpart_templates.html
文件。
要将页面大小和边距修改为 A4 值,请修改 page-margin
元素的 page-size
属性的 style
和 layout
属性。
将 page-margin
属性值设置为:
0.98in 0.98in 0.98in 0.98in 0.5in 0.5in 0in
此值按以下顺序指定边距:
上边距为 0.98 英寸。
左边距为 0.98 英寸
底部边距为 0.98 英寸
右边距 0.98 英寸
0.5 英寸标题
0.5 英寸页脚
装订线尺寸为 0
将 page-size
属性设置为:
8.27in 11.69in portrait
此值指定纵向页面尺寸为 8.27 x 11.69 英寸。
模板现在如下所示:
保存 docpart_templates.html
文件。
压缩模板。
zipTemplate("titlePageTemplate.pdftx");
自定义目录 PDF 模板
创建 mlreportgen.report.TableOfContents
报告器默认 PDF 模板的副本。
mlreportgen.report.TableOfContents.createTemplate(... "tableOfContentsTemplate.pdftx", "pdf");
解压模板。
unzipTemplate("tableOfContentsTemplate.pdftx");
打开解压后的 tableOfContentsTemplate
文件夹。
在 HTML 或文本编辑器中,打开 docpart_templates.html
文件。
要将页面大小和边距修改为 A4 值,请修改 page-margin
元素的 page-size
属性的 style
和 layout
属性。
将 page-margin
属性值设置为:
0.98in 0.98in 0.98in 0.98in 0.5in 0.5in 0in
此值按以下顺序指定边距:
上边距为 0.98 英寸。
左边距为 0.98 英寸
底部边距为 0.98 英寸
右边距 0.98 英寸
0.5 英寸标题
0.5 英寸页脚
装订线尺寸为 0
将 page-size
属性设置为:
8.27in 11.69in portrait
此值指定纵向页面尺寸为 8.27 x 11.69 英寸。
模板现在如下所示:
保存 docpart_templates.html
文件。
压缩模板。
zipTemplate("tableOfContentsTemplate.pdftx");
自定义章节 PDF 模板
创建 mlreportgen.report.Chapter
报告器默认 PDF 模板的副本。
mlreportgen.report.Chapter.createTemplate(... "chapterTemplate.pdftx", "pdf");
解压模板。
unzipTemplate("chapterTemplate.pdftx");
打开解压后的 chapterTemplate
文件夹。
在 HTML 或文本编辑器中,打开 docpart_templates.html
文件。
要将页面大小和边距修改为 A4 值,请修改 page-margin
元素的 page-size
属性的 style
和 layout
属性。
将 page-margin
属性值设置为:
0.98in 0.98in 0.98in 0.98in 0.5in 0.5in 0in
此值按以下顺序指定边距:
上边距为 0.98 英寸。
左边距为 0.98 英寸
底部边距为 0.98 英寸
右边距 0.98 英寸
0.5 英寸标题
0.5 英寸页脚
装订线尺寸为 0
将 page-size
属性设置为:
8.27in 11.69in portrait
此值指定纵向页面尺寸为 8.27 x 11.69 英寸。
模板现在如下所示:
保存 docpart_templates.html
文件。
压缩模板。
zipTemplate("chapterTemplate.pdftx");
在报告中使用自定义模板
使用自定义模板创建有关幻方阵的 PDF 报告,幻方阵是列、行和对角线之和等于相同数字的矩阵。
导入 DOM 和报告 API 包
导入 DOM 和报告 API 包以避免必须使用完全限定的类名。
import mlreportgen.report.*; import mlreportgen.dom.*;
创建报告容器。
rpt = Report("report","pdf");
添加标题页
创建标题页并指定标题、副标题和作者。
title = TitlePage("Title", "Magic Squares"); title.Subtitle = "Columns, Rows, Diagonals: All Equal Sums"; title.Author = "Albrecht Durer";
使用自定义标题页模板生成标题页。
title.TemplateSrc = fullfile(pwd,"titlePageTemplate.pdftx");
将标题页添加到报告。
append(rpt,title);
添加目录
toc = TableOfContents;
使用自定义目录模板生成目录。
toc.TemplateSrc = fullfile(pwd,"tableOfContentsTemplate.pdftx");
将目录添加到报告中。
append(rpt,toc);
添加章节
创建章节并指定标题。
chapter = Chapter("Introduction");
使用自定义章节模板生成章节。
chapter.TemplateSrc = fullfile(pwd,"chapterTemplate.pdftx");
创建一个节并向其中添加一个段落。
sec1 = Section("What is a Magic Square?"); para = Paragraph("A magic square is an N-by-N matrix " + ... "constructed from the integers 1 through N^2 " + ... "with equal row, column, and diagonal sums."); append(sec1,para);
将该节添加到章节中。
append(chapter,sec1);
创建另一个节并向其中添加一个段落。
sec2 = Section("Albrect Durer and the Magic Square"); para = Paragraph( ... "The German artist Albrecht Durer (1471-1528) created " + ... "many woodcuts and prints with religious and " + ... "scientific symbolism. One of his most famous works, " + ... "Melancholia I, explores the depressed state of mind " + ... "which opposes inspiration and expression. " + ... "Renaissance astrologers believed that the Jupiter " + ... "magic square (shown in the upper right portion of " + ... "the image) could aid in the cure of melancholy. The " + ... "engraving""s date (1514) can be found in the " + ... "lower row of numbers in the square."); append(sec2,para);
将该节添加到章节中。
append(chapter,sec2);
将该章节添加到报告中。
append(rpt,chapter);
关闭并查看文档
close(rpt); rptview(rpt);
另请参阅
mlreportgen.report.TitlePage
| mlreportgen.report.TableOfContents
| mlreportgen.report.Chapter