Arbeiten mit Seitenkopf und Fußzeile
Kopf- und Fußzeileninformationen aus einer MPP-Datei lesen
Aspose.Tasks for .NET API bietet die Möglichkeit, die Kopf- und Fußzeileninformationen aus einer MPP-Datei zu lesen. Die API enthält spezielle Klassen, die jedem Reiter des Microsoft Project Page Setup Dialog:
- Microsoft Project Page Setup-Dialog hat 6 Registerkarten. Diese Registerkarten werden neuen Klassen zugeordnet:
- Registerkarte ‘Seite’ -> PageSettings -> Aspose.Tasks.Visualization.PageSettings class
- Registerkarte ‘Ränder’ -> PageMargins -> Aspose.Tasks.Visualization.PageMargins class
- Registerkarten für Kopf- und Fußzeile -> HeaderFooterInfo -> Aspose.Tasks.Visualization.HeaderFooterInfo class
- Registerkarte ‘Legende’ -> PageLegend -> Aspose.Tasks.Visualization.PageLegend class
- Registerkarte ‘Ansicht’ -> PageViewSettings -> Aspose.Tasks.Visualization.PageViewSettings class
Das folgende Beispiel zeigt, wie man Kopf- und Fußzeileninformationen aus einer MPP-Datei liest:
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}
Bild zur Seitenkopf-/Seitenfußzeile hinzufügen
Aspose.Tasks for .NET bietet außerdem die Möglichkeit, Seitenkopf- und -fußzeilen zu bearbeiten, einschließlich dem Einfügen von Bildern. Das folgende Beispiel zeigt, wie man ein Bild in einen Seitenkopf einfügt:
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}
Durch die Verwendung von Aspose.Tasks for .NET erhalten Entwickler die volle Kontrolle über die Seiteneinrichtung, einschließlich Kopf- und Fußzeilen, Rändern, Legenden und Ansichtseinstellungen.
Diese Flexibilität ermöglicht die Erstellung von professionellen Berichten und Drucklayouts programmgesteuert, sodass die Projektdokumentation organisatorischen Standards entspricht, ohne manuelle Anpassungen in Microsoft Project zu erfordern.