summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMark Murphy <jmarkmurphy@apache.org>2016-12-12 02:43:45 +0000
committerMark Murphy <jmarkmurphy@apache.org>2016-12-12 02:43:45 +0000
commitc6d28db7e8d934856d27104bff6e82db61e9ed3c (patch)
treeb166cbedd770130ee486ab560045337a8abdad3e /src
parent5d77996c06336621d10eb078fcfcaa4177e14cd3 (diff)
downloadpoi-c6d28db7e8d934856d27104bff6e82db61e9ed3c.tar.gz
poi-c6d28db7e8d934856d27104bff6e82db61e9ed3c.zip
58237: Unable to add image to a word document header using XWPF
Task-Url: https://bz.apache.org/bugzilla/show_bug.cgi?id=58237 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1773729 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
-rw-r--r--src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java2
-rw-r--r--src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java72
2 files changed, 63 insertions, 11 deletions
diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
index c2718ab43c..88a6104cf3 100644
--- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
+++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
@@ -1003,7 +1003,7 @@ public class XWPFRun implements ISDTContents, IRunElement, CharacterRun {
CTBlipFillProperties blipFill = pic.addNewBlipFill();
CTBlip blip = blipFill.addNewBlip();
- blip.setEmbed(parent.getDocument().getRelationId(picData));
+ blip.setEmbed(parent.getPart().getRelationId(picData));
blipFill.addNewStretch().addNewFillRect();
CTShapeProperties spPr = pic.addNewSpPr();
diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
index 4194027097..fd237fb6da 100644
--- a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
+++ b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
@@ -16,14 +16,8 @@
==================================================================== */
package org.apache.poi.xwpf.usermodel;
-import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
-import org.apache.poi.util.Units;
-import org.apache.poi.xwpf.XWPFTestDataSamples;
-import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -31,8 +25,26 @@ import java.math.BigInteger;
import java.util.Iterator;
import java.util.List;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.apache.poi.util.Units;
+import org.apache.poi.wp.usermodel.HeaderFooterType;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
+import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.openxmlformats.schemas.drawingml.x2006.main.CTBlip;
+import org.openxmlformats.schemas.drawingml.x2006.main.CTBlipFillProperties;
+import org.openxmlformats.schemas.drawingml.x2006.picture.CTPicture;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBr;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTOnOff;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STBrClear;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHighlightColor;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STUnderline;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalAlignRun;
/**
* Tests for XWPF Run
@@ -472,6 +484,46 @@ public class TestXWPFRun {
assertEquals(1, docBack.getAllPictures().size());
assertEquals(1, rBack.getEmbeddedPictures().size());
}
+
+ /**
+ * Bugzilla #58237 - Unable to add image to word document header
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testAddPictureInHeader() throws Exception {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestDocument.docx");
+ XWPFHeader hdr = doc.createHeader(HeaderFooterType.DEFAULT);
+ XWPFParagraph p = hdr.createParagraph();
+ XWPFRun r = p.createRun();
+
+ assertEquals(0, hdr.getAllPictures().size());
+ assertEquals(0, r.getEmbeddedPictures().size());
+
+ r.addPicture(new ByteArrayInputStream(new byte[0]), Document.PICTURE_TYPE_JPEG, "test.jpg", 21, 32);
+
+ assertEquals(1, hdr.getAllPictures().size());
+ assertEquals(1, r.getEmbeddedPictures().size());
+
+ XWPFPicture pic = r.getEmbeddedPictures().get(0);
+ CTPicture ctPic = pic.getCTPicture();
+ CTBlipFillProperties ctBlipFill = ctPic.getBlipFill();
+
+ assertNotNull(ctBlipFill);
+
+ CTBlip ctBlip = ctBlipFill.getBlip();
+
+ assertNotNull(ctBlip);
+ assertEquals("rId1", ctBlip.getEmbed());
+
+ XWPFDocument docBack = XWPFTestDataSamples.writeOutAndReadBack(doc);
+ XWPFHeader hdrBack = docBack.getHeaderArray(0);
+ XWPFParagraph pBack = hdrBack.getParagraphArray(0);
+ XWPFRun rBack = pBack.getRuns().get(0);
+
+ assertEquals(1, hdrBack.getAllPictures().size());
+ assertEquals(1, rBack.getEmbeddedPictures().size());
+ }
/**
* Bugzilla #52288 - setting the font family on the