Working with Page Header Footer
Reading Header and Footer Information from MPP file
Aspose.Tasks for .NET API provides the capability to read the Header and Footer information from MPP file. The API includes dedicated classes that correspond to each tab of the Microsoft Project Page Setup dialog:
- Microsoft Project Page Setup dialog box has 6 tabs. These tabs are mapped to new classes:
- Page tab -> PageSettings -> Aspose.Tasks.Visualization.PageSettings class
- Margins tab -> PageMargins -> Aspose.Tasks.Visualization.PageMargins class
- Header, footer tabs -> HeaderFooterInfo -> Aspose.Tasks.Visualization.HeaderFooterInfo class
- Legend tab -> PageLegend -> Aspose.Tasks.Visualization.PageLegend class
- View tab -> PageViewSettings -> Aspose.Tasks.Visualization.PageViewSettings class
The following example demonstrates how to read header and footer information from an MPP file:
1static void Run()
2{
3 // Create project and project info instances
4 Project project = new Project("New Project.mpp");
5 PageInfo info = project.DefaultView.PageInfo;
6
7 Console.WriteLine("Page data cannot be null : {0} ", !info.Equals(null));
8
9 if (info != null)
10 {
11 AssertHeaderFooterCorrect(info);
12 AssertPageSettingsCorrect(info);
13 AssertPageViewSettingsCorrect(info);
14 AssertMarginsCorrect(info);
15 AssertLegendCorrect(info);
16 }
17
18}
19
20static void AssertHeaderFooterCorrect(PageInfo info)
21{
22 Console.WriteLine("Header left text Equals LEFT HEADER : {0} ", info.Header.LeftText.Equals("LEFT HEADER"));
23 Console.WriteLine("Header center text Equals CENTER HEADER : {0} ", info.Header.CenteredText.Equals("CENTER HEADER"));
24 Console.WriteLine("Header right text Equals RIGHT HEADER : {0} ", info.Header.RightText.Equals("RIGHT HEADER"));
25
26 Console.WriteLine("Footer left text Equals LEFT FOOTER : {0} ", info.Footer.LeftText.Equals("LEFT FOOTER"));
27 Console.WriteLine("Footer center text Equals CENTER FOOTER : {0} ", info.Footer.CenteredText.Equals("CENTER FOOTER"));
28 Console.WriteLine("Footer right text Equals RIGHT FOOTER : {0} ", info.Footer.RightText.Equals("RIGHT FOOTER"));
29}
30
31static void AssertPageSettingsCorrect(PageInfo info)
32{
33 Console.WriteLine("Portrait Orientation is Portrait : {0} ", info.PageSettings.IsPortrait.Equals(true));
34 Console.WriteLine("AdjustToPercentOfNormalSize is enabled : {0} ", info.PageSettings.AdjustToPercentOfNormalSize.Equals(true));
35
36 Console.WriteLine("PercentOfNormalSize Equals 150 : {0} ", info.PageSettings.PercentOfNormalSize.Equals(150));
37 Console.WriteLine("PagesInWidth Equals 3 : {0} ", info.PageSettings.PagesInWidth.Equals(3));
38 Console.WriteLine("PagesInHeight Equals 7 : {0} ", info.PageSettings.PagesInHeight.Equals(7));
39 Console.WriteLine("PaperSize Equals PaperA4 : {0} ", info.PageSettings.PaperSize.Equals(PrinterPaperSize.PaperA4));
40 Console.WriteLine("FirstPageNumber : {0} ", info.PageSettings.FirstPageNumber);
41}
42
43static void AssertPageViewSettingsCorrect(PageInfo info)
44{
45 Console.WriteLine("PrintAllSheetColumns is set to false : {0} ", info.PageViewSettings.PrintAllSheetColumns.Equals(false));
46 Console.WriteLine("PrintFirstColumnsCountOnAllPages is set to true : {0} ", info.PageViewSettings.PrintFirstColumnsCountOnAllPages.Equals(true));
47
48 Console.WriteLine("FirstColumnsCount Equals 3 : {0} ", info.PageViewSettings.FirstColumnsCount.Equals(3));
49 Console.WriteLine("PrintNotes is set to true : {0} ", info.PageViewSettings.PrintNotes.Equals(true));
50 Console.WriteLine("PrintBlankPages is set to false : {0} ", info.PageViewSettings.PrintBlankPages.Equals(false));
51 Console.WriteLine("FitTimescaleToEndOfPage is set to true : {0} ", info.PageViewSettings.FitTimescaleToEndOfPage.Equals(true));
52}
53
54static void AssertMarginsCorrect(PageInfo info)
55{
56 Console.WriteLine("Margins.Left Equals 1 : {0} ", (info.Margins.Left - 1 <= 1e-5) ? true : false);
57 Console.WriteLine("Margins.Top Equals 1.1 : {0} ", (info.Margins.Top - 1.1 <= 1e-5) ? true : false);
58 Console.WriteLine("Margins.Right Equals 1.2 : {0} ", (info.Margins.Right - 1.2 <= 1e-5) ? true : false);
59 Console.WriteLine("Margins.Bottom Equals 1.2 : {0} ", (info.Margins.Bottom - 1.3 <= 1e-5) ? true : false);
60
61 Console.WriteLine("Margin.Borders Equals Border.AroundEveryPage : {0} ",info.Margins.Borders.Equals(Border.AroundEveryPage));
62}
63
64static void AssertLegendCorrect(PageInfo info)
65{
66 Console.WriteLine("Legend left text Equals LEFT LEGEND : {0} ", info.Legend.LeftText.Equals("LEFT LEGEND"));
67 Console.WriteLine("Legend center text Equals CENTER LEGEND : {0} ", info.Legend.CenteredText.Equals("CENTER LEGEND"));
68 Console.WriteLine("Legend right text Equals RIGHT LEGEND : {0} ", info.Legend.RightText.Equals("RIGHT LEGEND"));
69
70 Console.WriteLine("LegendOn Equals Legend.OnEveryPage : {0} ", info.Legend.LegendOn.Equals(Legend.OnEveryPage));
71 Console.WriteLine("Legend Width Equals 5 : {0} ", (info.Legend.Width - 5 <= 1e-5) ? true : false);
72}
Adding Image to Page Header/Footer
Aspose.Tasks for .NET also provides the ability to manipulate page headers and footers, including inserting images. The example below shows how to add an image to a page header:
1Project project = new Project("New Project.mpp");
2
3project.RootTask.Children.Add("Task1");
4PageInfo pageInfo = project.DefaultView.PageInfo;
5
6using (Image image = Image.FromFile("Image1.png"))
7{
8 pageInfo.Header.CenteredImage = image;
9 pageInfo.Legend.LeftImage = image;
10 pageInfo.Legend.LeftText = string.Empty;
11 MPPSaveOptions options = new MPPSaveOptions();
12 options.WriteViewData = true;
13 project.Save("AddImageToPageHeaderFooter_out.mpp", options);
14}
By using Aspose.Tasks for .NET, developers gain full control over the page setup, including headers, footers, margins, legends, and view settings.
This flexibility enables the creation of professional reports and print layouts programmatically, ensuring that project documentation meets organizational standards without requiring manual adjustments in Microsoft Project.