]> source.dussan.org Git - poi.git/commitdiff
#60656 - EMF image support in slideshows
authorAndreas Beeker <kiwiwings@apache.org>
Sun, 16 Dec 2018 18:17:21 +0000 (18:17 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Sun, 16 Dec 2018 18:17:21 +0000 (18:17 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1849040 13f79535-47bb-0310-9956-ffa450edef68

20 files changed:
1  2 
build.gradle
build.xml
sonar/examples/pom.xml
sonar/excelant/pom.xml
sonar/main/pom.xml
sonar/ooxml-schema-encryption/pom.xml
sonar/ooxml-schema-security/pom.xml
sonar/ooxml-schema/pom.xml
sonar/ooxml/pom.xml
sonar/pom.xml
sonar/scratchpad/pom.xml
src/java/org/apache/poi/sl/draw/DrawPictureShape.java
src/java/org/apache/poi/util/Dimension2DDouble.java
src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureConfig.java
src/ooxml/java/org/apache/poi/xdgf/geom/Dimension2dDouble.java
src/ooxml/java/org/apache/poi/xslf/draw/SVGImageRenderer.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFChart.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFDrawing.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSheet.java

diff --cc build.gradle
index 63e1d34e8df91b26e0094e9a806f01b0485bc6b0,63e1d34e8df91b26e0094e9a806f01b0485bc6b0..9c4afa814bca1384bf6c0a1dab027ba1c47a842c
@@@ -91,7 -91,7 +91,7 @@@ subprojects 
      // See https://github.com/melix/japicmp-gradle-plugin 
      apply plugin: 'me.champeau.gradle.japicmp'
          
--    version = '4.0.2-SNAPSHOT'
++    version = '4.1.0-SNAPSHOT'
      ext {
          japicmpversion = '4.0.0'
      }
diff --cc build.xml
index d7032dc1c2d949a2ef0b08a708a16b24b888b3ef,d7032dc1c2d949a2ef0b08a708a16b24b888b3ef..e512230ac7c8ffafb75cb806bc6874b8cf3c64df
+++ b/build.xml
@@@ -42,7 -42,7 +42,7 @@@ under the License
  
      <description>The Apache POI project Ant build.</description>
  
--    <property name="version.id" value="4.0.2"/>
++    <property name="version.id" value="4.1.0"/>
      <property name="release.rc" value="RC1"/>
  
      <property environment="env"/>
index 22c576a20de90e1de893403b57d7299089b80472,22c576a20de90e1de893403b57d7299089b80472..b6854c9f7ba5a4aec989647d939e42d98b54da17
@@@ -6,7 -6,7 +6,7 @@@
      <parent>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-parent</artifactId>
--        <version>4.0.2-SNAPSHOT</version>
++        <version>4.1.0-SNAPSHOT</version>
      </parent>
      <artifactId>poi-examples</artifactId>
      <packaging>jar</packaging>
index 220d4eb1e9d76a43d76584e2ca669d5de50c0ff5,220d4eb1e9d76a43d76584e2ca669d5de50c0ff5..2953351f8ecb6aa11a1173a5ac710e3fbfa215a6
@@@ -6,7 -6,7 +6,7 @@@
      <parent>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-parent</artifactId>
--        <version>4.0.2-SNAPSHOT</version>
++        <version>4.1.0-SNAPSHOT</version>
      </parent>
      <artifactId>poi-excelant</artifactId>
      <packaging>jar</packaging>
index 9bd0af96a232bd762081b68a4d1af26802b2f7fd,9bd0af96a232bd762081b68a4d1af26802b2f7fd..2c4eed2720be4ede16c8b6a154f82a9ad118cade
@@@ -6,7 -6,7 +6,7 @@@
      <parent>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-parent</artifactId>
--        <version>4.0.2-SNAPSHOT</version>
++        <version>4.1.0-SNAPSHOT</version>
      </parent>
      <artifactId>poi-main</artifactId>
      <packaging>jar</packaging>
index d768a5f4b328f466b9c62a68802581dc175a116a,d768a5f4b328f466b9c62a68802581dc175a116a..9a0b19d19062c61dda18e8c3ed743a4a639d03cd
@@@ -6,7 -6,7 +6,7 @@@
      <parent>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-parent</artifactId>
--        <version>4.0.2-SNAPSHOT</version>
++        <version>4.1.0-SNAPSHOT</version>
          <relativePath>..</relativePath>
      </parent>
      <artifactId>poi-ooxml-schema-encryption</artifactId>
index 06318b2be97c7aa26c3ff10af9a04779ccf95ad1,06318b2be97c7aa26c3ff10af9a04779ccf95ad1..a9d7418bbfdd76222eff158098486c29f63c46a7
@@@ -6,7 -6,7 +6,7 @@@
      <parent>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-parent</artifactId>
--        <version>4.0.2-SNAPSHOT</version>
++        <version>4.1.0-SNAPSHOT</version>
          <relativePath>..</relativePath>
      </parent>
      <artifactId>poi-ooxml-schema-security</artifactId>
index 7bb69433da4dcc27831155eb752549d306aec7d4,7bb69433da4dcc27831155eb752549d306aec7d4..3b5f5c28f4c6c3c3deff7a0f77a7ba6e603aee48
@@@ -6,7 -6,7 +6,7 @@@
      <parent>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-parent</artifactId>
--        <version>4.0.2-SNAPSHOT</version>
++        <version>4.1.0-SNAPSHOT</version>
          <relativePath>..</relativePath>
      </parent>
      <artifactId>poi-ooxml-schema</artifactId>
index 6a6232acaa074c4ae2b8861e2de029d393466c15,6a6232acaa074c4ae2b8861e2de029d393466c15..7de88404ccd61a146cff467a7c405a96f8ec5c8f
@@@ -6,7 -6,7 +6,7 @@@
      <parent>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-parent</artifactId>
--        <version>4.0.2-SNAPSHOT</version>
++        <version>4.1.0-SNAPSHOT</version>
      </parent>
      <artifactId>poi-ooxml</artifactId>
      <packaging>jar</packaging>
diff --cc sonar/pom.xml
index c008c3a1c4505a5b6cc92317e70868fae6d0e2da,c008c3a1c4505a5b6cc92317e70868fae6d0e2da..5fce9d97c58ce7be364e563c5d01194b18e682f6
@@@ -4,7 -4,7 +4,7 @@@
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-parent</artifactId>
      <packaging>pom</packaging>
--    <version>4.0.2-SNAPSHOT</version>
++    <version>4.1.0-SNAPSHOT</version>
      <name>Apache POI - the Java API for Microsoft Documents</name>
      <description>Maven build of Apache POI for Sonar checks</description>
      <url>http://poi.apache.org/</url>
index a980e155685faa92bfa1ce211f8ac21bca5dbcf8,a980e155685faa92bfa1ce211f8ac21bca5dbcf8..5af72fdee3898b6eb07ea8a20c290d6b52723745
@@@ -6,7 -6,7 +6,7 @@@
      <parent>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-parent</artifactId>
--        <version>4.0.2-SNAPSHOT</version>
++        <version>4.1.0-SNAPSHOT</version>
      </parent>
      <artifactId>poi-scratchpad</artifactId>
      <packaging>jar</packaging>
index fcca6d07a7ffaa13cb308aafd451afd868a84d7f,3ccbc9f2197facaa2537ceabfe347230f75b8d04..70194bdcd71a3bc5b516adb5e79d5678aa18dd26
@@@ -22,19 -22,22 +22,22 @@@ import java.awt.Graphics2D
  import java.awt.Insets;
  import java.awt.geom.Rectangle2D;
  import java.io.IOException;
 -import java.util.ServiceLoader;
  
  import org.apache.poi.sl.usermodel.PictureData;
- import org.apache.poi.sl.usermodel.PictureData.PictureType;
- import org.apache.poi.util.POILogFactory;
- import org.apache.poi.util.POILogger;
  import org.apache.poi.sl.usermodel.PictureShape;
  import org.apache.poi.sl.usermodel.RectAlign;
+ import org.apache.poi.util.POILogFactory;
+ import org.apache.poi.util.POILogger;
  
  
  public class DrawPictureShape extends DrawSimpleShape {
      private static final POILogger LOG = POILogFactory.getLogger(DrawPictureShape.class);
-     private static final String WMF_IMAGE_RENDERER = "org.apache.poi.hwmf.draw.HwmfSLImageRenderer";
-     
+     private static final String[] KNOWN_RENDERER = {
+         "org.apache.poi.hwmf.draw.HwmfImageRenderer",
 -        "org.apache.poi.hemf.draw.HemfImageRenderer"
++        "org.apache.poi.hemf.draw.HemfImageRenderer",
++        "org.apache.poi.xslf.draw.SVGImageRenderer"
+     };
      public DrawPictureShape(PictureShape<?,?> shape) {
          super(shape);
      }
index 0000000000000000000000000000000000000000,d08906433c7ab6fa3d8756b665a12a31dae813ed..227c0cddd58fbeebb74f87855fd7232f2a6db3f6
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,73 +1,76 @@@
+ /* ====================================================================
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+        http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+ ==================================================================== */
+ package org.apache.poi.util;
+ import java.awt.geom.Dimension2D;
++/**
++ * @since 4.1.0
++ */
+ public class Dimension2DDouble extends Dimension2D {
+     double width;
+     double height;
+     public Dimension2DDouble() {
+         width = 0d;
+         height = 0d;
+     }
+     public Dimension2DDouble(double width, double height) {
+         this.width = width;
+         this.height = height;
+     }
+     @Override
+     public double getWidth() {
+         return width;
+     }
+     @Override
+     public double getHeight() {
+         return height;
+     }
+     @Override
+     public void setSize(double width, double height) {
+         this.width = width;
+         this.height = height;
+     }
+     @Override
+     public boolean equals(Object obj) {
+         if (obj instanceof Dimension2DDouble) {
+             Dimension2DDouble other = (Dimension2DDouble) obj;
+             return width == other.width && height == other.height;
+         }
+         return false;
+     }
+     @Override
+     public int hashCode() {
+         double sum = width + height;
+         return (int) Math.ceil(sum * (sum + 1) / 2 + width);
+     }
+     @Override
+     public String toString() {
+         return "Dimension2DDouble[" + width + ", " + height + "]";
+     }
+ }
index 71a42ef9e115ab22e9852840e7334678c4b6979c,71a42ef9e115ab22e9852840e7334678c4b6979c..0977a403a123f07e36b68788a9552e8c0f853338
@@@ -177,7 -177,7 +177,7 @@@ public class SignatureConfig 
      /**
       * if true, the signature is added to the existing signatures
       *
--     * @since POI 4.0.2
++     * @since POI 4.1.0
       */
      private boolean allowMultipleSignatures = false;
  
      /**
       * @return true, if multiple signatures can be attached
       *
--     * @since POI 4.0.2
++     * @since POI 4.1.0
       */
      public boolean isAllowMultipleSignatures() {
          return allowMultipleSignatures;
       * @param allowMultipleSignatures if true, the signature will be added,
       *          otherwise all existing signatures will be replaced by the current
       *
--     * @since POI 4.0.2
++     * @since POI 4.1.0
       */
      public void setAllowMultipleSignatures(boolean allowMultipleSignatures) {
          this.allowMultipleSignatures = allowMultipleSignatures;
index 94b887e04ed0b45b8a1426677153e562902f855b,0000000000000000000000000000000000000000..2363abb939ae027420d8b8d64ed5b17e68ae9520
mode 100644,000000..100644
--- /dev/null
@@@ -1,73 -1,0 +1,28 @@@
- import java.awt.geom.Dimension2D;
- public class Dimension2dDouble extends Dimension2D {
-     double width;
-     double height;
-     public Dimension2dDouble() {
-         width = 0d;
-         height = 0d;
-     }
-     public Dimension2dDouble(double width, double height) {
-         this.width = width;
-         this.height = height;
-     }
-     @Override
-     public double getWidth() {
-         return width;
-     }
-     @Override
-     public double getHeight() {
-         return height;
-     }
-     @Override
-     public void setSize(double width, double height) {
-         this.width = width;
-         this.height = height;
-     }
-     @Override
-     public boolean equals(Object obj) {
-         if (obj instanceof Dimension2dDouble) {
-             Dimension2dDouble other = (Dimension2dDouble) obj;
-             return width == other.width && height == other.height;
-         }
-         return false;
-     }
-     @Override
-     public int hashCode() {
-         double sum = width + height;
-         return (int) Math.ceil(sum * (sum + 1) / 2 + width);
-     }
-     @Override
-     public String toString() {
-         return "Dimension2dDouble[" + width + ", " + height + "]";
-     }
 +/* ====================================================================
 +   Licensed to the Apache Software Foundation (ASF) under one or more
 +   contributor license agreements.  See the NOTICE file distributed with
 +   this work for additional information regarding copyright ownership.
 +   The ASF licenses this file to You under the Apache License, Version 2.0
 +   (the "License"); you may not use this file except in compliance with
 +   the License.  You may obtain a copy of the License at
 +
 +       http://www.apache.org/licenses/LICENSE-2.0
 +
 +   Unless required by applicable law or agreed to in writing, software
 +   distributed under the License is distributed on an "AS IS" BASIS,
 +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +   See the License for the specific language governing permissions and
 +   limitations under the License.
 +==================================================================== */
 +
 +package org.apache.poi.xdgf.geom;
 +
++import org.apache.poi.util.Removal;
++
++/**
++ * @deprecated in 4.1.0 - use org.apache.poi.util.Dimension2DDouble
++ */
++@Deprecated
++@Removal(version = "5.0.0")
++public class Dimension2dDouble extends org.apache.poi.util.Dimension2DDouble {
 +}
index 2a03dda6914aafd6bfa026c8f03e993c92adbbba,2a03dda6914aafd6bfa026c8f03e993c92adbbba..a40c169516ddc5c2665dcbf4420af39550ca89a4
@@@ -39,6 -39,6 +39,7 @@@ import org.apache.batik.ext.awt.image.r
  import org.apache.batik.gvt.GraphicsNode;
  import org.apache.batik.util.XMLResourceDescriptor;
  import org.apache.poi.sl.draw.ImageRenderer;
++import org.apache.poi.sl.usermodel.PictureData;
  import org.w3c.dom.Document;
  
  public class SVGImageRenderer implements ImageRenderer {
  
          return true;
      }
++
++    @Override
++    public boolean canRender(String contentType) {
++        return PictureData.PictureType.SVG.contentType.equalsIgnoreCase(contentType);
++    }
  }
index b0cbc59dd1678407c830114f61acc34486843d2f,b0cbc59dd1678407c830114f61acc34486843d2f..c5e47415df2f81fea28da5470b77904faa752155
@@@ -310,7 -310,7 +310,7 @@@ public class XMLSlideShow extends POIXM
      /**
       * This method is used to create template for chart XML.
       * @return Xslf chart object 
--     * @since POI 4.0.2 
++     * @since POI 4.1.0
       */
      public XSLFChart createChart() {
          int chartIdx = findNextAvailableFileNameIndex(XSLFRelation.CHART, _charts.size() + 1);
index 5e8d73cd069a2c5d07619ef133cf32cac3aad993,5e8d73cd069a2c5d07619ef133cf32cac3aad993..97f3ec23eeae844a96101133b5c826db11e96131
@@@ -112,7 -112,7 +112,7 @@@ public final class XSLFChart extends XD
       * @param rID relation id
       * @param anchor size and location of chart
       * @return graphic frame object
--     * @since POI 4.0.2
++     * @since POI 4.1.0
       */
      static CTGraphicalObjectFrame prototype(int shapeId, String rID, Rectangle2D anchor) {
          CTGraphicalObjectFrame frame = CTGraphicalObjectFrame.Factory.newInstance();
index ba93988d0b5e30deee65d80b70114472da19918a,ba93988d0b5e30deee65d80b70114472da19918a..dca6fed13158bfe99caec363e6bf0af93e8f1146
@@@ -112,7 -112,7 +112,7 @@@ public class XSLFDrawing 
       *
       * @param rID relation id of chart
       * @param rect2D Chart Bounding values
--     * @since POI 4.0.2
++     * @since POI 4.1.0
       */
      public void addChart(String rID, Rectangle2D rect2D) {
          CTGraphicalObjectFrame sp = _spTree.addNewGraphicFrame();
index 2bcf063990b6df4fab286c91721bbdada0a84492,2bcf063990b6df4fab286c91721bbdada0a84492..d76142a4c400388869444e3e07611f3f6ee21f2c
@@@ -724,7 -724,7 +724,7 @@@ implements XSLFShapeContainer, Sheet<XS
       * this method will add chart into slide
       * with default height, width, x and y
       * @param chart xslf chart object
--     * @since POI 4.0.2
++     * @since POI 4.1.0
       */
      public void addChart(XSLFChart chart) {
          Rectangle2D rect2D = new java.awt.Rectangle(XDDFChart.DEFAULT_X, XDDFChart.DEFAULT_Y,
       * this method will add chart into slide
       * with given height, width, x and y
       * @param chart xslf chart object
--     * @since POI 4.0.2
++     * @since POI 4.1.0
       */
      public void addChart(XSLFChart chart, Rectangle2D rect2D) {
          RelationPart rp = addRelation(null, XSLFRelation.CHART, chart);