public void TestFloatingPictures() { HWPFDocument doc = HWPFTestDataSamples.OpenSampleFile("FloatingPictures.doc"); PicturesTable pictures = doc.GetPicturesTable(); // There are 19 images in the picture, but some are // duplicate floating ones Assert.AreEqual(17, pictures.GetAllPictures().Count); int plain8s = 0; int escher8s = 0; int image1s = 0; Range r = doc.GetRange(); for (int np = 0; np < r.NumParagraphs; np++) { Paragraph p = r.GetParagraph(np); for (int nc = 0; nc < p.NumCharacterRuns; nc++) { CharacterRun cr = p.GetCharacterRun(nc); if (pictures.HasPicture(cr)) { image1s++; } else if (pictures.HasEscherPicture(cr)) { escher8s++; } else if (cr.Text.StartsWith("\u0008")) { plain8s++; } } } // Total is 20, as the 4 escher 8s all reference // the same regular image Assert.AreEqual(16, image1s); Assert.AreEqual(4, escher8s); Assert.AreEqual(0, plain8s); }
public void TestEmbededDocumentIcon() { // This file has two embeded excel files, an embeded powerpoint // file and an embeded word file, in that order HWPFDocument doc = HWPFTestDataSamples.OpenSampleFile("word_with_embeded.doc"); // Check we don't break loading the pictures doc.GetPicturesTable().GetAllPictures(); PicturesTable pictureTable = doc.GetPicturesTable(); // Check the Text, and its embeded images Paragraph p; Range r = doc.GetRange(); Assert.AreEqual(1, r.NumSections); Assert.AreEqual(5, r.NumParagraphs); p = r.GetParagraph(0); Assert.AreEqual(2, p.NumCharacterRuns); Assert.AreEqual("I have lots of embedded files in me\r", p.Text); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(0))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(1))); p = r.GetParagraph(1); Assert.AreEqual(5, p.NumCharacterRuns); Assert.AreEqual("\u0013 EMBED Excel.Sheet.8 \u0014\u0001\u0015\r", p.Text); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(0))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(1))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(2))); Assert.AreEqual(true, pictureTable.HasPicture(p.GetCharacterRun(3))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(4))); p = r.GetParagraph(2); Assert.AreEqual(6, p.NumCharacterRuns); Assert.AreEqual("\u0013 EMBED Excel.Sheet.8 \u0014\u0001\u0015\r", p.Text); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(0))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(1))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(2))); Assert.AreEqual(true, pictureTable.HasPicture(p.GetCharacterRun(3))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(4))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(5))); p = r.GetParagraph(3); Assert.AreEqual(6, p.NumCharacterRuns); Assert.AreEqual("\u0013 EMBED PowerPoint.Show.8 \u0014\u0001\u0015\r", p.Text); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(0))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(1))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(2))); Assert.AreEqual(true, pictureTable.HasPicture(p.GetCharacterRun(3))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(4))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(5))); p = r.GetParagraph(4); Assert.AreEqual(6, p.NumCharacterRuns); Assert.AreEqual("\u0013 EMBED Word.Document.8 \\s \u0014\u0001\u0015\r", p.Text); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(0))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(1))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(2))); Assert.AreEqual(true, pictureTable.HasPicture(p.GetCharacterRun(3))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(4))); Assert.AreEqual(false, pictureTable.HasPicture(p.GetCharacterRun(5))); // Look at the pictures table List <Picture> pictures = pictureTable.GetAllPictures(); Assert.AreEqual(4, pictures.Count); Picture picture = pictures[0]; Assert.AreEqual("", picture.SuggestFileExtension()); Assert.AreEqual("0", picture.SuggestFullFileName()); Assert.AreEqual("image/unknown", picture.MimeType); picture = pictures[1]; Assert.AreEqual("", picture.SuggestFileExtension()); Assert.AreEqual("469", picture.SuggestFullFileName()); Assert.AreEqual("image/unknown", picture.MimeType); picture = pictures[2]; Assert.AreEqual("", picture.SuggestFileExtension()); Assert.AreEqual("8c7", picture.SuggestFullFileName()); Assert.AreEqual("image/unknown", picture.MimeType); picture = pictures[3]; Assert.AreEqual("", picture.SuggestFileExtension()); Assert.AreEqual("10a8", picture.SuggestFullFileName()); Assert.AreEqual("image/unknown", picture.MimeType); }