You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2020/11/15 21:49:24 UTC

svn commit: r1883460 - in /poi/trunk/src: ooxml/java/org/apache/poi/xslf/util/ scratchpad/src/org/apache/poi/hemf/record/emf/ scratchpad/src/org/apache/poi/hwmf/draw/ scratchpad/src/org/apache/poi/hwmf/record/

Author: kiwiwings
Date: Sun Nov 15 21:49:24 2020
New Revision: 1883460

URL: http://svn.apache.org/viewvc?rev=1883460&view=rev
Log:
#64716 - wmf display error
- close polygons
- reset current path location on emf modifyworldtransform
- mirror text if the affinetransform is negative scaled

Modified:
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/PPTX2PNG.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfDraw.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfMisc.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfText.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/draw/HwmfGraphics.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfDraw.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfText.java

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/PPTX2PNG.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/PPTX2PNG.java?rev=1883460&r1=1883459&r2=1883460&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/PPTX2PNG.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/PPTX2PNG.java Sun Nov 15 21:49:24 2020
@@ -298,7 +298,7 @@ public final class PPTX2PNG {
                     // default rendering options
                     graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                     graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
-                    graphics.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_SPEED);
+                    graphics.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
                     graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
                     graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
                     graphics.setRenderingHint(Drawable.DEFAULT_CHARSET, getDefaultCharset());

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfDraw.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfDraw.java?rev=1883460&r1=1883459&r2=1883460&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfDraw.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfDraw.java Sun Nov 15 21:49:24 2020
@@ -206,6 +206,11 @@ public final class HemfDraw {
         }
 
         @Override
+        protected boolean addClose() {
+            return false;
+        }
+
+        @Override
         public Map<String, Supplier<?>> getGenericProperties() {
             return GenericRecordUtil.getGenericProperties(
                 "base", super::getGenericProperties,
@@ -352,6 +357,11 @@ public final class HemfDraw {
             // The line segments SHOULD be drawn using the current pen.
             return FillDrawStyle.DRAW;
         }
+
+        @Override
+        protected boolean addClose() {
+            return false;
+        }
     }
 
     /**
@@ -953,6 +963,11 @@ public final class HemfDraw {
         }
 
         @Override
+        protected boolean addClose() {
+            return false;
+        }
+
+        @Override
         public Map<String, Supplier<?>> getGenericProperties() {
             return GenericRecordUtil.getGenericProperties(
                 "base", super::getGenericProperties,

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfMisc.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfMisc.java?rev=1883460&r1=1883459&r2=1883460&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfMisc.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfMisc.java Sun Nov 15 21:49:24 2020
@@ -831,6 +831,7 @@ public class HemfMisc {
                     break;
             }
             ctx.updateWindowMapMode();
+            ctx.getProperties().setLocation(0,0);
         }
 
         @Override

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfText.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfText.java?rev=1883460&r1=1883459&r2=1883460&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfText.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfText.java Sun Nov 15 21:49:24 2020
@@ -95,7 +95,7 @@ public class HemfText {
 
             // A WMF PointL object that specifies the coordinates of the reference point used to position the string.
             // The reference point is defined by the last EMR_SETTEXTALIGN record.
-            // If no such record has been set, the default alignment is TA_LEFT,TA_TOP.
+            // If no such record has been set, the defaulint alignment is TA_LEFT,TA_TOP.
             size += readPointL(leis, reference);
             // A 32-bit unsigned integer that specifies the number of characters in the string.
             stringLength = (int)leis.readUInt();

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/draw/HwmfGraphics.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/draw/HwmfGraphics.java?rev=1883460&r1=1883459&r2=1883460&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/draw/HwmfGraphics.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/draw/HwmfGraphics.java Sun Nov 15 21:49:24 2020
@@ -495,6 +495,7 @@ public class HwmfGraphics implements Hwm
             if (scale != null) {
                 graphicsCtx.scale(scale.getWidth() < 0 ? -1 : 1, scale.getHeight() < 0 ? -1 : 1);
             }
+            graphicsCtx.scale(at.getScaleX() < 0 ? -1 : 1, at.getScaleY() < 0 ? -1 : 1);
             graphicsCtx.translate(dst.getX(), dst.getY());
             graphicsCtx.setColor(prop.getTextColor().getColor());
             graphicsCtx.drawString(as.getIterator(), 0, 0);

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfDraw.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfDraw.java?rev=1883460&r1=1883459&r2=1883460&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfDraw.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfDraw.java Sun Nov 15 21:49:24 2020
@@ -158,6 +158,11 @@ public final class HwmfDraw {
                 }
             }
 
+            if (addClose()) {
+                // polygons are closed / polylines not
+                poly.closePath();
+            }
+
             return LittleEndianConsts.SHORT_SIZE+numberofPoints*LittleEndianConsts.INT_SIZE;
         }
 
@@ -185,6 +190,13 @@ public final class HwmfDraw {
             return poly;
         }
 
+        /**
+         * @return {@code true} if the path needs to be closed
+         */
+        protected boolean addClose() {
+            return true;
+        }
+
         @Override
         public Map<String, Supplier<?>> getGenericProperties() {
             return GenericRecordUtil.getGenericProperties("poly", this::getPoly);
@@ -206,6 +218,11 @@ public final class HwmfDraw {
         protected FillDrawStyle getFillDrawStyle() {
             return FillDrawStyle.DRAW;
         }
+
+        @Override
+        protected boolean addClose() {
+            return false;
+        }
     }
 
     /**

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfText.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfText.java?rev=1883460&r1=1883459&r2=1883460&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfText.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfText.java Sun Nov 15 21:49:24 2020
@@ -469,6 +469,10 @@ public class HwmfText {
             return bounds;
         }
 
+        public WmfExtTextOutOptions getOptions() {
+            return options;
+        }
+
         protected boolean isUnicode() {
             return false;
         }
@@ -491,6 +495,7 @@ public class HwmfText {
             return GenericRecordUtil.getGenericProperties(
                 "reference", this::getReference,
                 "bounds", this::getBounds,
+                "options", this::getOptions,
                 "text", this::getGenericText,
                 "dx", () -> dx
             );



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org