public void TestPictureInHeader() { XWPFDocument sampleDoc = XWPFTestDataSamples.OpenSampleDocument("headerPic.docx"); XWPFHeaderFooterPolicy policy = sampleDoc.GetHeaderFooterPolicy(); XWPFHeader header = policy.GetDefaultHeader(); int count = 0; foreach (XWPFParagraph p in header.Paragraphs) { foreach (XWPFRun r in p.GetRuns()) { List <XWPFPicture> pictures = r.GetEmbeddedPictures(); foreach (XWPFPicture pic in pictures) { Assert.IsNotNull(pic.GetPictureData()); Assert.AreEqual("DOZOR", pic.GetDescription()); } count += pictures.Count; } } Assert.AreEqual(1, count); }
public void TestBug51770() { XWPFDocument doc = XWPFTestDataSamples.OpenSampleDocument("Bug51170.docx"); XWPFHeaderFooterPolicy policy = doc.GetHeaderFooterPolicy(); XWPFHeader header = policy.GetDefaultHeader(); foreach (XWPFParagraph paragraph in header.Paragraphs) { foreach (XWPFRun run in paragraph.Runs) { foreach (XWPFPicture picture in run.GetEmbeddedPictures()) { if (paragraph.Document != null) { System.Console.WriteLine(picture.GetCTPicture()); XWPFPictureData data = picture.GetPictureData(); if (data != null) { System.Console.WriteLine(data.FileName); } } } } } }
public void TestRegisterPackagePictureData() { XWPFDocument doc = XWPFTestDataSamples.OpenSampleDocument("issue_51265_1.docx"); /* manually assemble a new image package part*/ OPCPackage opcPckg = doc.Package; XWPFRelation jpgRelation = XWPFRelation.IMAGE_JPEG; PackagePartName partName = PackagingUriHelper.CreatePartName(jpgRelation.DefaultFileName.Replace('#', '2')); PackagePart newImagePart = opcPckg.CreatePart(partName, jpgRelation.ContentType); byte[] nature1 = XWPFTestDataSamples.GetImage("abstract4.jpg"); Stream os = newImagePart.GetOutputStream(); os.Write(nature1, 0, nature1.Length); os.Close(); XWPFHeader xwpfHeader = doc.HeaderList[(0)]; PackageRelationship relationship = xwpfHeader.GetPackagePart().AddRelationship(partName, TargetMode.Internal, jpgRelation.Relation); XWPFPictureData newPicData = new XWPFPictureData(newImagePart, relationship); /* new part is now Ready to rumble */ Assert.IsFalse(xwpfHeader.AllPictures.Contains(newPicData)); Assert.IsFalse(doc.AllPictures.Contains(newPicData)); Assert.IsFalse(doc.AllPackagePictures.Contains(newPicData)); doc.RegisterPackagePictureData(newPicData); Assert.IsFalse(xwpfHeader.AllPictures.Contains(newPicData)); Assert.IsFalse(doc.AllPictures.Contains(newPicData)); Assert.IsTrue(doc.AllPackagePictures.Contains(newPicData)); doc.Package.Revert(); }
public void TestCreateHeaderPicture() { // TODO Fix XWPFDocument doc = new XWPFDocument(); // Starts with no header XWPFHeaderFooterPolicy policy = doc.GetHeaderFooterPolicy(); Assert.IsNull(policy); // Add a default header policy = doc.CreateHeaderFooterPolicy(); XWPFHeader header = policy.CreateHeader(XWPFHeaderFooterPolicy.DEFAULT); header.Paragraphs[0].CreateRun().SetText("Hello, Header World!"); header.CreateParagraph().CreateRun().SetText("Paragraph 2"); Assert.AreEqual(0, header.AllPictures.Count); Assert.AreEqual(2, header.Paragraphs.Count); // Add a picture to the first paragraph header.Paragraphs[0].Runs[0].AddPicture( new ByteArrayInputStream(new byte[] { 1, 2, 3, 4 }), (int)PictureType.JPEG, "test.jpg", 2, 2); // Check verifyOneHeaderPicture(doc); // Save, re-load, re-check XWPFDocument readBack = XWPFTestDataSamples.WriteOutAndReadBack(doc); verifyOneHeaderPicture(readBack); }
private void verifyOneHeaderPicture(XWPFDocument sampleDoc) { XWPFHeaderFooterPolicy policy = sampleDoc.GetHeaderFooterPolicy(); XWPFHeader header = policy.GetDefaultHeader(); IList <XWPFPictureData> pictures = header.AllPictures; Assert.AreEqual(1, pictures.Count); }
public void TestImageInHeader() { XWPFDocument sampleDoc = XWPFTestDataSamples.OpenSampleDocument("headerPic.docx"); XWPFHeaderFooterPolicy policy = sampleDoc.GetHeaderFooterPolicy(); XWPFHeader header = policy.GetDefaultHeader(); Assert.IsNotNull(header.GetRelations()); Assert.AreEqual(1, header.GetRelations().Count); }
public void TestPictureInHeader() { XWPFDocument sampleDoc = XWPFTestDataSamples.OpenSampleDocument("headerPic.docx"); XWPFHeaderFooterPolicy policy = sampleDoc.GetHeaderFooterPolicy(); XWPFHeader header = policy.GetDefaultHeader(); IList <XWPFPictureData> pictures = header.AllPictures; Assert.AreEqual(1, pictures.Count); }
public void TestSimpleHeader() { XWPFDocument sampleDoc = XWPFTestDataSamples.OpenSampleDocument("headerFooter.docx"); XWPFHeaderFooterPolicy policy = sampleDoc.GetHeaderFooterPolicy(); XWPFHeader header = policy.GetDefaultHeader(); XWPFFooter footer = policy.GetDefaultFooter(); Assert.IsNotNull(header); Assert.IsNotNull(footer); }
public void TestHeaderParagraph() { XWPFDocument xml = XWPFTestDataSamples.OpenSampleDocument("ThreeColHead.docx"); XWPFHeader hdr = xml.GetHeaderFooterPolicy().GetDefaultHeader(); Assert.IsNotNull(hdr); IList <XWPFParagraph> ps = hdr.Paragraphs; Assert.AreEqual(1, ps.Count); XWPFParagraph p = ps[(0)]; Assert.AreEqual(5, p.GetCTP().GetRList().Count); Assert.AreEqual("First header column!\tMid header\tRight header!", p.Text); }
public void TestZeroLengthLibreOfficeDocumentWithWaterMarkHeader() { XWPFDocument doc = XWPFTestDataSamples.OpenSampleDocument("zero-length.docx"); POIXMLProperties properties = doc.GetProperties(); Assert.IsNotNull(properties.CoreProperties); XWPFHeader headerArray = doc.GetHeaderArray(0); Assert.AreEqual(1, headerArray.AllPictures.Count); Assert.AreEqual("image1.png", headerArray.AllPictures[0].FileName); Assert.AreEqual("", headerArray.Text); ExtendedProperties extendedProperties = properties.ExtendedProperties; Assert.IsNotNull(extendedProperties); Assert.AreEqual(0, extendedProperties.GetUnderlyingProperties().Characters); }
public void TestPictureHandlingComplex() { XWPFDocument doc = XWPFTestDataSamples.OpenSampleDocument("issue_51265_3.docx"); XWPFHeader xwpfHeader = doc.HeaderList[(0)]; Assert.AreEqual(3, doc.AllPictures.Count); Assert.AreEqual(3, xwpfHeader.AllPictures.Count); Assert.AreEqual(5, doc.AllPackagePictures.Count); byte[] nature1 = XWPFTestDataSamples.GetImage("nature1.jpg"); String id = doc.AddPictureData(nature1, (int)PictureType.JPEG); POIXMLDocumentPart part1 = xwpfHeader.GetRelationById("rId1"); XWPFPictureData part2 = (XWPFPictureData)doc.GetRelationById(id); Assert.AreSame(part1, part2); doc.Package.Revert(); }
private void assignHeader(XWPFHeader hdr, ST_HdrFtr type) { if (type == ST_HdrFtr.FIRST) { firstPageHeader = hdr; } else if (type == ST_HdrFtr.EVEN) { evenPageHeader = hdr; } else { defaultHeader = hdr; } }
public void TestSetHeader() { XWPFDocument sampleDoc = XWPFTestDataSamples.OpenSampleDocument("SampleDoc.docx"); // no header is Set (yet) XWPFHeaderFooterPolicy policy = sampleDoc.GetHeaderFooterPolicy(); Assert.IsNull(policy.GetDefaultHeader()); Assert.IsNull(policy.GetFirstPageHeader()); Assert.IsNull(policy.GetDefaultFooter()); CT_P ctP1 = new CT_P(); CT_R ctR1 = ctP1.AddNewR(); CT_Text t = ctR1.AddNewT(); String tText = "Paragraph in header"; t.Value = tText; // Commented MB 23 May 2010 //CTP ctP2 = CTP.Factory.NewInstance(); //CTR ctR2 = ctP2.AddNewR(); //CTText t2 = ctR2.AddNewT(); //t2.StringValue=("Second paragraph.. for footer"); // Create two paragraphs for insertion into the footer. // Previously only one was inserted MB 23 May 2010 CT_P ctP2 = new CT_P(); CT_R ctR2 = ctP2.AddNewR(); CT_Text t2 = ctR2.AddNewT(); t2.Value = ("First paragraph for the footer"); CT_P ctP3 = new CT_P(); CT_R ctR3 = ctP3.AddNewR(); CT_Text t3 = ctR3.AddNewT(); t3.Value = ("Second paragraph for the footer"); XWPFParagraph p1 = new XWPFParagraph(ctP1, sampleDoc); XWPFParagraph[] pars = new XWPFParagraph[1]; pars[0] = p1; XWPFParagraph p2 = new XWPFParagraph(ctP2, sampleDoc); XWPFParagraph p3 = new XWPFParagraph(ctP3, sampleDoc); XWPFParagraph[] pars2 = new XWPFParagraph[2]; pars2[0] = p2; pars2[1] = p3; // Set headers XWPFHeader headerD = policy.CreateHeader(XWPFHeaderFooterPolicy.DEFAULT, pars); XWPFHeader headerF = policy.CreateHeader(XWPFHeaderFooterPolicy.FIRST); // Set a default footer and capture the returned XWPFFooter object. XWPFFooter footer = policy.CreateFooter(XWPFHeaderFooterPolicy.DEFAULT, pars2); // Ensure the headers and footer were Set correctly.... Assert.IsNotNull(policy.GetDefaultHeader()); Assert.IsNotNull(policy.GetFirstPageHeader()); Assert.IsNotNull(policy.GetDefaultFooter()); // ....and that the footer object captured above Contains two // paragraphs of text. Assert.AreEqual(2, footer.Paragraphs.Count); // Check the header created with the paragraph got them, and the one // created without got an empty one Assert.AreEqual(1, headerD.Paragraphs.Count); Assert.AreEqual(1, headerF.Paragraphs.Count); Assert.AreEqual(tText, headerD.Paragraphs[0].Text); Assert.AreEqual("", headerF.Paragraphs[0].Text); // As an Additional Check, recover the defauls footer and // make sure that it Contains two paragraphs of text and that // both do hold what is expected. footer = policy.GetDefaultFooter(); XWPFParagraph[] paras = new List <XWPFParagraph>(footer.Paragraphs).ToArray(); Assert.AreEqual(2, paras.Length); Assert.AreEqual("First paragraph for the footer", paras[0].Text); Assert.AreEqual("Second paragraph for the footer", paras[1].Text); // Add some text to the empty header String fText1 = "New Text!"; headerF.Paragraphs[0].InsertNewRun(0).SetText(fText1); // TODO Add another paragraph and check // Check it Assert.AreEqual(tText, headerD.Paragraphs[0].Text); Assert.AreEqual(fText1, headerF.Paragraphs[0].Text); // Save, re-open, ensure it's all still there XWPFDocument reopened = XWPFTestDataSamples.WriteOutAndReadBack(sampleDoc); policy = reopened.GetHeaderFooterPolicy(); Assert.IsNotNull(policy.GetDefaultHeader()); Assert.IsNotNull(policy.GetFirstPageHeader()); Assert.IsNull(policy.GetEvenPageHeader()); Assert.IsNotNull(policy.GetDefaultFooter()); Assert.IsNull(policy.GetFirstPageFooter()); Assert.IsNull(policy.GetEvenPageFooter()); // Check the new headers still have their text headerD = policy.GetDefaultHeader(); headerF = policy.GetFirstPageHeader(); Assert.AreEqual(tText, headerD.Paragraphs[0].Text); Assert.AreEqual(fText1, headerF.Paragraphs[0].Text); // Check the new footers have their new text too footer = policy.GetDefaultFooter(); paras = new List <XWPFParagraph>(footer.Paragraphs).ToArray(); Assert.AreEqual(2, paras.Length); Assert.AreEqual("First paragraph for the footer", paras[0].Text); Assert.AreEqual("Second paragraph for the footer", paras[1].Text); }
internal override void OnDocumentRead() { try { DocumentDocument documentDocument = DocumentDocument.Parse(this.GetPackagePart().GetInputStream()); this.ctDocument = documentDocument.Document; this.InitFootnotes(); foreach (object obj in this.ctDocument.body.Items) { if (obj is CT_P) { XWPFParagraph xwpfParagraph = new XWPFParagraph((CT_P)obj, (IBody)this); this.bodyElements.Add((IBodyElement)xwpfParagraph); this.paragraphs.Add(xwpfParagraph); } else if (obj is CT_Tbl) { XWPFTable xwpfTable = new XWPFTable((CT_Tbl)obj, (IBody)this); this.bodyElements.Add((IBodyElement)xwpfTable); this.tables.Add(xwpfTable); } } if (documentDocument.Document.body.sectPr != null) { this.headerFooterPolicy = new XWPFHeaderFooterPolicy(this); } foreach (POIXMLDocumentPart relation1 in this.GetRelations()) { string relationshipType = relation1.GetPackageRelationship().RelationshipType; if (relationshipType.Equals(XWPFRelation.STYLES.Relation)) { this.styles = (XWPFStyles)relation1; this.styles.OnDocumentRead(); } else if (relationshipType.Equals(XWPFRelation.NUMBERING.Relation)) { this.numbering = (XWPFNumbering)relation1; this.numbering.OnDocumentRead(); } else if (relationshipType.Equals(XWPFRelation.FOOTER.Relation)) { XWPFFooter xwpfFooter = (XWPFFooter)relation1; this.footers.Add(xwpfFooter); xwpfFooter.OnDocumentRead(); } else if (relationshipType.Equals(XWPFRelation.HEADER.Relation)) { XWPFHeader xwpfHeader = (XWPFHeader)relation1; this.headers.Add(xwpfHeader); xwpfHeader.OnDocumentRead(); } else if (relationshipType.Equals(XWPFRelation.COMMENT.Relation)) { foreach (CT_Comment comment in CommentsDocument.Parse(relation1.GetPackagePart().GetInputStream()).Comments.comment) { this.comments.Add(new XWPFComment(comment, this)); } } else if (relationshipType.Equals(XWPFRelation.SETTINGS.Relation)) { this.Settings = (XWPFSettings)relation1; this.Settings.OnDocumentRead(); } else if (relationshipType.Equals(XWPFRelation.IMAGES.Relation)) { XWPFPictureData picData = (XWPFPictureData)relation1; picData.OnDocumentRead(); this.RegisterPackagePictureData(picData); this.pictures.Add(picData); } else if (relationshipType.Equals(XWPFRelation.GLOSSARY_DOCUMENT.Relation)) { foreach (POIXMLDocumentPart relation2 in relation1.GetRelations()) { try { relation2.OnDocumentRead(); } catch (Exception ex) { throw new POIXMLException(ex); } } } } this.InitHyperlinks(); } catch (XmlException ex) { throw new POIXMLException((Exception)ex); } }