You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ma...@apache.org on 2011/03/21 13:43:58 UTC
svn commit: r1083764 - in /poi/trunk:
src/ooxml/java/org/apache/poi/xwpf/model/
src/ooxml/java/org/apache/poi/xwpf/usermodel/
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/ test-data/document/
Author: maxcom
Date: Mon Mar 21 12:43:58 2011
New Revision: 1083764
URL: http://svn.apache.org/viewvc?rev=1083764&view=rev
Log:
XWPF: support for pictures in headers
Added:
poi/trunk/test-data/document/headerPic.docx (with props)
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeader.java
poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFPicture.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFHeader.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFPictureData.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java?rev=1083764&r1=1083763&r2=1083764&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/model/XWPFHeaderFooterPolicy.java Mon Mar 21 12:43:58 2011
@@ -107,9 +107,14 @@ public class XWPFHeaderFooterPolicy {
// Get the header
CTHdrFtrRef ref = sectPr.getHeaderReferenceArray(i);
PackagePart hdrPart = doc.getPartById(ref.getId());
- HdrDocument hdrDoc = HdrDocument.Factory.parse(hdrPart.getInputStream());
- CTHdrFtr hdrFtr = hdrDoc.getHdr();
- XWPFHeader hdr = new XWPFHeader(doc, hdrFtr);
+
+ XWPFHeader hdr = null;
+
+ for (POIXMLDocumentPart part : doc.getRelations()) {
+ if (part.getPackagePart().getPartName().equals(hdrPart.getPartName())) {
+ hdr = (XWPFHeader) part;
+ }
+ }
// Assign it
Enum type = ref.getType();
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeader.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeader.java?rev=1083764&r1=1083763&r2=1083764&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeader.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeader.java Mon Mar 21 12:43:58 2011
@@ -133,7 +133,6 @@ public class XWPFHeader extends XWPFHead
}
}
cursor.dispose();
- getAllPictures();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFPicture.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFPicture.java?rev=1083764&r1=1083763&r2=1083764&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFPicture.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFPicture.java Mon Mar 21 12:43:58 2011
@@ -64,7 +64,7 @@ public class XWPFPicture {
*/
public XWPFPictureData getPictureData(){
String blipId = ctPic.getBlipFill().getBlip().getEmbed();
- for(POIXMLDocumentPart part: paragraph.getDocument().getRelations()){
+ for(POIXMLDocumentPart part: ((POIXMLDocumentPart) paragraph.getPart()).getRelations()){
if(part.getPackageRelationship().getId().equals(blipId)){
return (XWPFPictureData)part;
}
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFHeader.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFHeader.java?rev=1083764&r1=1083763&r2=1083764&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFHeader.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFHeader.java Mon Mar 21 12:43:58 2011
@@ -34,16 +34,22 @@ public final class TestXWPFHeader extend
XWPFHeaderFooterPolicy policy = sampleDoc.getHeaderFooterPolicy();
-
XWPFHeader header = policy.getDefaultHeader();
XWPFFooter footer = policy.getDefaultFooter();
assertNotNull(header);
assertNotNull(footer);
+ }
- // TODO verify if the following is correct
- assertNull(header.toString());
+ public void testImageInHeader() {
+ XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("headerPic.docx");
- }
+ XWPFHeaderFooterPolicy policy = sampleDoc.getHeaderFooterPolicy();
+
+ XWPFHeader header = policy.getDefaultHeader();
+
+ assertNotNull(header.getRelations());
+ assertEquals(1, header.getRelations().size());
+ }
public void testSetHeader() throws IOException {
XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("SampleDoc.docx");
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFPictureData.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFPictureData.java?rev=1083764&r1=1083763&r2=1083764&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFPictureData.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFPictureData.java Mon Mar 21 12:43:58 2011
@@ -26,6 +26,7 @@ import org.apache.poi.openxml4j.exceptio
import org.apache.poi.openxml4j.opc.PackageRelationship;
import org.apache.poi.xssf.usermodel.XSSFRelation;
import org.apache.poi.xwpf.XWPFTestDataSamples;
+import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
public class TestXWPFPictureData extends TestCase {
public void testRead(){
@@ -58,6 +59,16 @@ public class TestXWPFPictureData extends
}
}
+ public void testPictureInHeader() {
+ XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("headerPic.docx");
+ XWPFHeaderFooterPolicy policy = sampleDoc.getHeaderFooterPolicy();
+
+ XWPFHeader header = policy.getDefaultHeader();
+
+ List<XWPFPictureData> pictures = header.getAllPictures();
+ assertEquals(1, pictures.size());
+ }
+
public void testNew() throws Exception {
XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("EmptyDocumentWithHeaderFooter.docx");
byte[] jpegData = "test jpeg data".getBytes();
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java?rev=1083764&r1=1083763&r2=1083764&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java Mon Mar 21 12:43:58 2011
@@ -17,10 +17,12 @@
package org.apache.poi.xwpf.usermodel;
import java.math.BigInteger;
+import java.util.List;
import junit.framework.TestCase;
import org.apache.poi.xwpf.XWPFTestDataSamples;
+import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;
@@ -326,4 +328,27 @@ public class TestXWPFRun extends TestCas
assertEquals(false, run.isStrike());
assertEquals(null, run.getCTR().getRPr());
}
+
+ public void testPictureInHeader() {
+ XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("headerPic.docx");
+ XWPFHeaderFooterPolicy policy = sampleDoc.getHeaderFooterPolicy();
+
+ XWPFHeader header = policy.getDefaultHeader();
+
+ int count = 0;
+
+ for (XWPFParagraph p : header.getParagraphs()) {
+ for (XWPFRun r : p.getRuns()) {
+ List<XWPFPicture> pictures = r.getEmbeddedPictures();
+
+ for (XWPFPicture pic : pictures) {
+ assertNotNull(pic.getPictureData());
+ }
+
+ count+= pictures.size();
+ }
+ }
+
+ assertEquals(1, count);
+ }
}
Added: poi/trunk/test-data/document/headerPic.docx
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/document/headerPic.docx?rev=1083764&view=auto
==============================================================================
Binary file - no diff available.
Propchange: poi/trunk/test-data/document/headerPic.docx
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org