Main Content

Add Complex Page Numbers in Microsoft Word

This example adds a complex page number to footers in Microsoft® Word document. A complex number has the form [Chapter #][separator][Page#], for example, 7–1. You can add this type of number in a header or footer. You can do this using a template, by inserting a page number in a footer, and specifying the page number properties.

Whether you are using a template or a program, your template must use a multilevel list for the heading level that contains the chapter to reference. To create this type of list:

  1. In your Word template, on the Home tab, click the Multilevel List button .

  2. Select the numbered heading item.

    Multilevel Lists with numbered heading item selected

  3. Apply the Normal style to the paragraph.

  4. Save and close the template.

You can then use a program like this one to use the complex page number. The ChapterStartStyle and ChapterSeparator properties on the PageNumber object specify to use heading level 1 for the chapter number and an en-dash as a separator.

import mlreportgen.dom.*;
d = Document('mypages','docx','numberChapters');

open(d);
layout = d.CurrentPageLayout;

% Page number formatting
pgnum = PageNumber(1,'n');
pgnum.ChapterStartStyle = '1';
pgnum.ChapterSeparator = 'endash';

% Add page number object to page layout styles
layout.Style = {pgnum};
% layout.Style = [layout.Style {pgnum}];

% Create the footer object and insert a page number
myfooter = DOCXPageFooter();
para = Paragraph();
para.HAlign = 'center';
append(para,Page());
append(myfooter,para);

% Set PageFooters on the current layout to your footer object
layout.PageFooters = myfooter;

% Create content
for i=1:5
     title = append(d,Heading1(['Chapter' num2str(i)]));
     title.Style = {PageBreakBefore};
     for j=1:30
     append(d,'This is the body of the chapter');
     end
 end

close(d);
rptview(d.OutputPath);  

Tip

Create a page layout for each chapter to restart numbering the pages for each chapter at 1.

See Also

| |