public void TestPictures() { XWPFDocument doc = XWPFTestDataSamples.OpenSampleDocument("VariousPictures.docx"); Assert.AreEqual(7, doc.Paragraphs.Count); XWPFParagraph p; XWPFRun r; // Text paragraphs Assert.AreEqual("Sheet with various pictures", doc.Paragraphs[0].Text); Assert.AreEqual("(jpeg, png, wmf, emf and pict) ", doc.Paragraphs[1].Text); // Spacer ones Assert.AreEqual("", doc.Paragraphs[2].Text); Assert.AreEqual("", doc.Paragraphs[3].Text); Assert.AreEqual("", doc.Paragraphs[4].Text); // Image one p = doc.Paragraphs[5]; Assert.AreEqual(6, p.Runs.Count); r = p.Runs[0]; Assert.AreEqual("", r.ToString()); Assert.AreEqual(1, r.GetEmbeddedPictures().Count); Assert.IsNotNull(r.GetEmbeddedPictures()[0].GetPictureData()); Assert.AreEqual("image1.wmf", r.GetEmbeddedPictures()[0].GetPictureData().FileName); r = p.Runs[1]; Assert.AreEqual("", r.ToString()); Assert.AreEqual(1, r.GetEmbeddedPictures().Count); Assert.IsNotNull(r.GetEmbeddedPictures()[0].GetPictureData()); Assert.AreEqual("image2.png", r.GetEmbeddedPictures()[0].GetPictureData().FileName); r = p.Runs[2]; Assert.AreEqual("", r.ToString()); Assert.AreEqual(1, r.GetEmbeddedPictures().Count); Assert.IsNotNull(r.GetEmbeddedPictures()[0].GetPictureData()); Assert.AreEqual("image3.emf", r.GetEmbeddedPictures()[0].GetPictureData().FileName); r = p.Runs[3]; Assert.AreEqual("", r.ToString()); Assert.AreEqual(1, r.GetEmbeddedPictures().Count); Assert.IsNotNull(r.GetEmbeddedPictures()[0].GetPictureData()); Assert.AreEqual("image4.emf", r.GetEmbeddedPictures()[0].GetPictureData().FileName); r = p.Runs[4]; Assert.AreEqual("", r.ToString()); Assert.AreEqual(1, r.GetEmbeddedPictures().Count); Assert.IsNotNull(r.GetEmbeddedPictures()[0].GetPictureData()); Assert.AreEqual("image5.jpeg", r.GetEmbeddedPictures()[0].GetPictureData().FileName); r = p.Runs[5]; //Is there a bug about XmlSerializer? it can not Deserialize the tag which inner text is only one whitespace //e.g. <w:t> </w:t> to CT_Text; //TODO Assert.AreEqual(" ", r.ToString()); Assert.AreEqual(0, r.GetEmbeddedPictures().Count); // Final spacer Assert.AreEqual("", doc.Paragraphs[(6)].Text); // Look in detail at one r = p.Runs[4]; XWPFPicture pict = r.GetEmbeddedPictures()[0]; //CT_Picture picture = pict.GetCTPicture(); NPOI.OpenXmlFormats.Dml.Picture.CT_Picture picture = pict.GetCTPicture(); //Assert.Fail("picture.blipFill.blip.embed is missing from wordprocessing CT_Picture."); Assert.AreEqual("rId8", picture.blipFill.blip.embed); // Ensure that the ooxml compiler Finds everything we need r.GetCTR().GetDrawingArray(0); r.GetCTR().GetDrawingArray(0).GetInlineArray(0); NPOI.OpenXmlFormats.Dml.CT_GraphicalObject go = r.GetCTR().GetDrawingArray(0).GetInlineArray(0).graphic; NPOI.OpenXmlFormats.Dml.CT_GraphicalObjectData god = r.GetCTR().GetDrawingArray(0).GetInlineArray(0).graphic.graphicData; //PicDocument pd = new PicDocumentImpl(null); //assertTrue(pd.isNil()); }