using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using System.IO.Packaging;
namespace Novacode
{
public class Header : Container
{
public bool PageNumbers
{
get
{
return false;
}
set
{
XElement e = XElement.Parse
(@"
1
"
);
Xml.AddFirst(e);
PageNumberParagraph = new Paragraph(Document, e.Descendants(XName.Get("p", DocX.w.NamespaceName)).SingleOrDefault(), 0);
}
}
public Paragraph PageNumberParagraph;
internal PackagePart mainPart;
internal Header(DocX document, XElement xml, PackagePart mainPart):base(document, xml)
{
this.mainPart = mainPart;
}
public override Paragraph InsertParagraph()
{
Paragraph p = base.InsertParagraph();
p.PackagePart = mainPart;
return p;
}
public override Paragraph InsertParagraph(int index, string text, bool trackChanges)
{
Paragraph p = base.InsertParagraph(index, text, trackChanges);
p.PackagePart = mainPart;
return p;
}
public override Paragraph InsertParagraph(Paragraph p)
{
p.PackagePart = mainPart;
return base.InsertParagraph(p);
}
public override Paragraph InsertParagraph(int index, Paragraph p)
{
p.PackagePart = mainPart;
return base.InsertParagraph(index, p);
}
public override Paragraph InsertParagraph(int index, string text, bool trackChanges, Formatting formatting)
{
Paragraph p = base.InsertParagraph(index, text, trackChanges, formatting);
p.PackagePart = mainPart;
return p;
}
public override Paragraph InsertParagraph(string text)
{
Paragraph p = base.InsertParagraph(text);
p.PackagePart = mainPart;
return p;
}
public override Paragraph InsertParagraph(string text, bool trackChanges)
{
Paragraph p = base.InsertParagraph(text, trackChanges);
p.PackagePart = mainPart;
return p;
}
public override Paragraph InsertParagraph(string text, bool trackChanges, Formatting formatting)
{
Paragraph p = base.InsertParagraph(text, trackChanges, formatting);
p.PackagePart = mainPart;
return p;
}
public override Paragraph InsertEquation(String equation)
{
Paragraph p = base.InsertEquation(equation);
p.PackagePart = mainPart;
return p;
}
public override List Paragraphs
{
get
{
List l = base.Paragraphs;
l.ForEach(x => x.mainPart = mainPart);
return l;
}
}
public override List Tables
{
get
{
List l = base.Tables;
l.ForEach(x => x.mainPart = mainPart);
return l;
}
}
public List Images
{
get
{
PackageRelationshipCollection imageRelationships = mainPart.GetRelationshipsByType("http://schemas.openxmlformats.org/officeDocument/2006/relationships/image");
if (imageRelationships.Count() > 0)
{
return
(
from i in imageRelationships
select new Image(Document, i)
).ToList();
}
return new List();
}
}
}
}