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 TestRead() { XWPFDocument sampleDoc = XWPFTestDataSamples.OpenSampleDocument("VariousPictures.docx"); IList <XWPFPictureData> pictures = sampleDoc.AllPictures; Assert.AreEqual(5, pictures.Count); String[] ext = { "wmf", "png", "emf", "emf", "jpeg" }; for (int i = 0; i < pictures.Count; i++) { Assert.AreEqual(ext[i], pictures[(i)].SuggestFileExtension()); } int num = pictures.Count; byte[] pictureData = XWPFTestDataSamples.GetImage("nature1.jpg"); String relationId = sampleDoc.AddPictureData(pictureData, (int)PictureType.JPEG); // picture list was updated Assert.AreEqual(num + 1, pictures.Count); XWPFPictureData pict = (XWPFPictureData)sampleDoc.GetRelationById(relationId); Assert.AreEqual("jpeg", pict.SuggestFileExtension()); Assert.IsTrue(Arrays.Equals(pictureData, pict.Data)); }
public void TestFindPackagePictureData() { XWPFDocument doc = XWPFTestDataSamples.OpenSampleDocument("issue_51265_1.docx"); byte[] nature1 = XWPFTestDataSamples.GetImage("nature1.gif"); XWPFPictureData part = doc.FindPackagePictureData(nature1, (int)PictureType.GIF); Assert.IsNotNull(part); Assert.IsTrue(doc.AllPictures.Contains(part)); Assert.IsTrue(doc.AllPackagePictures.Contains(part)); doc.Package.Revert(); }
public void TestAddPicture() { XWPFDocument doc = XWPFTestDataSamples.OpenSampleDocument("sample.docx"); byte[] jpeg = XWPFTestDataSamples.GetImage("nature1.jpg"); String relationId = doc.AddPictureData(jpeg, (int)PictureType.JPEG); byte[] newJpeg = ((XWPFPictureData)doc.GetRelationById(relationId)).Data; Assert.AreEqual(newJpeg.Length, jpeg.Length); for (int i = 0; i < jpeg.Length; i++) { Assert.AreEqual(newJpeg[i], jpeg[i]); } }
public void TestPictureHandlingSimpleFile() { XWPFDocument doc = XWPFTestDataSamples.OpenSampleDocument("issue_51265_1.docx"); Assert.AreEqual(1, doc.AllPackagePictures.Count); byte[] newPic = XWPFTestDataSamples.GetImage("abstract4.jpg"); String id1 = doc.AddPictureData(newPic, (int)PictureType.JPEG); Assert.AreEqual(2, doc.AllPackagePictures.Count); /* copy data, to avoid instance-Equality */ byte[] newPicCopy = Arrays.CopyOf(newPic, newPic.Length); String id2 = doc.AddPictureData(newPicCopy, (int)PictureType.JPEG); Assert.AreEqual(id1, id2); doc.Package.Revert(); }
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(); }
public void TestBug55476() { byte[] image = XWPFTestDataSamples.GetImage("abstract1.jpg"); XWPFDocument document = new XWPFDocument(); document.CreateParagraph().CreateRun().AddPicture( new MemoryStream(image), (int)PictureType.JPEG, "test.jpg", Units.ToEMU(300), Units.ToEMU(100)); XWPFDocument docBack = XWPFTestDataSamples.WriteOutAndReadBack(document); List <XWPFPicture> pictures = docBack.GetParagraphArray(0).Runs[0].GetEmbeddedPictures(); Assert.AreEqual(1, pictures.Count); docBack.Close(); /*OutputStream stream = new FileOutputStream("c:\\temp\\55476.docx"); * try { * document.write(stream); * } finally { * stream.close(); * }*/ document.Close(); }
public void TestNew() { XWPFDocument doc = XWPFTestDataSamples.OpenSampleDocument("EmptyDocumentWithHeaderFooter.docx"); byte[] jpegData = XWPFTestDataSamples.GetImage("nature1.jpg"); Assert.IsNotNull(jpegData); byte[] gifData = XWPFTestDataSamples.GetImage("nature1.gif"); Assert.IsNotNull(gifData); byte[] pngData = XWPFTestDataSamples.GetImage("nature1.png"); Assert.IsNotNull(pngData); IList <XWPFPictureData> pictures = doc.AllPictures; Assert.AreEqual(0, pictures.Count); // Document shouldn't have any image relationships Assert.AreEqual(13, doc.GetPackagePart().Relationships.Size); foreach (PackageRelationship rel in doc.GetPackagePart().Relationships) { if (rel.RelationshipType.Equals(XSSFRelation.IMAGE_JPEG.Relation)) { Assert.Fail("Shouldn't have JPEG yet"); } } // Add the image String relationId = doc.AddPictureData(jpegData, (int)PictureType.JPEG); Assert.AreEqual(1, pictures.Count); XWPFPictureData jpgPicData = (XWPFPictureData)doc.GetRelationById(relationId); Assert.AreEqual("jpeg", jpgPicData.SuggestFileExtension()); Assert.IsTrue(Arrays.Equals(jpegData, jpgPicData.Data)); // Ensure it now has one Assert.AreEqual(14, doc.GetPackagePart().Relationships.Size); PackageRelationship jpegRel = null; foreach (PackageRelationship rel in doc.GetPackagePart().Relationships) { if (rel.RelationshipType.Equals(XWPFRelation.IMAGE_JPEG.Relation)) { if (jpegRel != null) { Assert.Fail("Found 2 jpegs!"); } jpegRel = rel; } } Assert.IsNotNull(jpegRel, "JPEG Relationship not found"); // Check the details Assert.AreEqual(XWPFRelation.IMAGE_JPEG.Relation, jpegRel.RelationshipType); Assert.AreEqual("/word/document.xml", jpegRel.Source.PartName.ToString()); Assert.AreEqual("/word/media/image1.jpeg", jpegRel.TargetUri.OriginalString); XWPFPictureData pictureDataByID = doc.GetPictureDataByID(jpegRel.Id); Assert.IsTrue(Arrays.Equals(jpegData, pictureDataByID.Data)); // Save an re-load, check it appears doc = XWPFTestDataSamples.WriteOutAndReadBack(doc); Assert.AreEqual(1, doc.AllPictures.Count); Assert.AreEqual(1, doc.AllPackagePictures.Count); // verify the picture that we read back in pictureDataByID = doc.GetPictureDataByID(jpegRel.Id); Assert.IsTrue(Arrays.Equals(jpegData, pictureDataByID.Data)); }