Author: fanningpj
Date: Wed Mar 27 13:33:57 2024
New Revision: 1916582
URL: http://svn.apache.org/viewvc?rev=1916582&view=rev
Log:
[github-607] Support SVGs in XWPF. Thanks to Etienne Gautier. This closes #607
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/Document.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java
poi/trunk/poi/src/main/java/org/apache/poi/common/usermodel/PictureType.java
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/Document.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/Document.java?rev=1916582&r1=1916581&r2=1916582&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/Document.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/Document.java
Wed Mar 27 13:33:57 2024
@@ -74,4 +74,9 @@ public interface Document {
* WordPerfect graphics (.wpg)
*/
public static final int PICTURE_TYPE_WPG = PictureType.WPG.ooxmlId;
+
+ /**
+ * SVG graphics (.svg)
+ */
+ public static final int PICTURE_TYPE_SVG = PictureType.SVG.ooxmlId;
}
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java?rev=1916582&r1=1916581&r2=1916582&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java
Wed Mar 27 13:33:57 2024
@@ -58,7 +58,7 @@ public class XWPFPictureData extends POI
protected static final POIXMLRelation[] RELATIONS;
static {
- RELATIONS = new POIXMLRelation[14];
+ RELATIONS = new POIXMLRelation[15];
RELATIONS[PictureType.EMF.ooxmlId] = XWPFRelation.IMAGE_EMF;
RELATIONS[PictureType.WMF.ooxmlId] = XWPFRelation.IMAGE_WMF;
RELATIONS[PictureType.PICT.ooxmlId] = XWPFRelation.IMAGE_PICT;
@@ -71,6 +71,7 @@ public class XWPFPictureData extends POI
RELATIONS[PictureType.BMP.ooxmlId] = XWPFRelation.IMAGE_BMP;
RELATIONS[PictureType.WPG.ooxmlId] = XWPFRelation.IMAGE_WPG;
RELATIONS[PictureType.WDP.ooxmlId] = XWPFRelation.HDPHOTO_WDP;
+ RELATIONS[PictureType.SVG.ooxmlId] = XWPFRelation.IMAGE_SVG;
}
private Long checksum;
@@ -149,6 +150,7 @@ public class XWPFPictureData extends POI
* @see org.apache.poi.xwpf.usermodel.Document#PICTURE_TYPE_PNG
* @see org.apache.poi.xwpf.usermodel.Document#PICTURE_TYPE_GIF
* @see org.apache.poi.xwpf.usermodel.Document#PICTURE_TYPE_DIB
+ * @see org.apache.poi.xwpf.usermodel.Document#PICTURE_TYPE_SVG
* @see #getPictureTypeEnum()
*/
public int getPictureType() {
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java?rev=1916582&r1=1916581&r2=1916582&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java
Wed Mar 27 13:33:57 2024
@@ -234,6 +234,12 @@ public final class XWPFRelation extends
"/ppt/media/hdphoto#.wdp",
XWPFPictureData::new, XWPFPictureData::new
);
+ public static final XWPFRelation IMAGE_SVG = new XWPFRelation(
+ PictureType.SVG.contentType,
+ IMAGE_PART,
+ "/word/media/image#.svg",
+ XWPFPictureData::new, XWPFPictureData::new
+);
public static final XWPFRelation IMAGES = new XWPFRelation(
null,
IMAGE_PART,
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java?rev=1916582&r1=1916581&r2=1916582&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
Wed Mar 27 13:33:57 2024
@@ -1207,6 +1207,7 @@ public class XWPFRun implements ISDTCont
* @see org.apache.poi.xwpf.usermodel.Document#PICTURE_TYPE_PNG
* @see org.apache.poi.xwpf.usermodel.Document#PICTURE_TYPE_GIF
* @see org.apache.poi.xwpf.usermodel.Document#PICTURE_TYPE_DIB
+ * @see org.apache.poi.xwpf.usermodel.Document#PICTURE_TYPE_SVG
* @see #addPicture(InputStream, PictureType, String, int, int)
*/
public XWPFPicture addPicture(InputStream pictureData, int pictureType,
String filename, int width, int height)
Modified:
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java?rev=1916582&r1=1916581&r2=1916582&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java
(original)
+++
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java
Wed Mar 27 13:33:57 2024
@@ -191,11 +191,12 @@ public final class TestXWPFDocument {
doc.addPictureData(new byte[18], Document.PICTURE_TYPE_EPS);
doc.addPictureData(new byte[19], Document.PICTURE_TYPE_BMP);
doc.addPictureData(new byte[20], Document.PICTURE_TYPE_WPG);
+ doc.addPictureData(new byte[21], Document.PICTURE_TYPE_SVG);
- assertEquals(11, doc.getAllPictures().size());
+ assertEquals(12, doc.getAllPictures().size());
try (XWPFDocument doc2 =
XWPFTestDataSamples.writeOutAndReadBack(doc)) {
- assertEquals(11, doc2.getAllPictures().size());
+ assertEquals(12, doc2.getAllPictures().size());
}
}
}
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/common/usermodel/PictureType.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/common/usermodel/PictureType.java?rev=1916582&r1=1916581&r2=1916582&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/common/usermodel/PictureType.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/common/usermodel/PictureType.java
Wed Mar 27 13:33:57 2024
@@ -53,7 +53,7 @@ public enum PictureType {
/** Microsoft Windows Media Photo image (.wdp) */
WDP("image/vnd.ms-photo", ".wdp", 13),
/** Scalable vector graphics (.svg) - supported by Office 2016 and higher
*/
- SVG("image/svg+xml", ".svg", -1),
+ SVG("image/svg+xml", ".svg", 14),
/** Unknown picture type - specific to escher bse record */
UNKNOWN("", ".dat", -1),
/** Picture type error - specific to escher bse record */
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]