You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by ac...@apache.org on 2008/08/27 14:35:51 UTC

svn commit: r689459 [7/7] - in /xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop: pdf/ render/ render/afp/ render/afp/goca/ render/afp/ioca/ render/afp/modca/ render/afp/modca/resource/ render/afp/modca/triplets/ render/java2d/

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/triplets/Triplet.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/triplets/Triplet.java?rev=689459&r1=689458&r2=689459&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/triplets/Triplet.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/triplets/Triplet.java Wed Aug 27 05:35:44 2008
@@ -5,9 +5,9 @@
  * 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.
@@ -24,50 +24,50 @@
 import java.io.UnsupportedEncodingException;
 
 import org.apache.fop.render.afp.AFPConstants;
-import org.apache.fop.render.afp.modca.AbstractAFPObject;
+import org.apache.fop.util.store.Streamable;
 
 /**
  * A simple implementation of a MOD:CA triplet
  */
-public class Triplet extends AbstractAFPObject {
+public class Triplet implements Streamable {
     public static final byte CODED_GRAPHIC_CHARACTER_SET_GLOBAL_IDENTIFIER = 0x01;
-    
+
     /** Triplet identifiers */
-    public static final byte FULLY_QUALIFIED_NAME = 0x02;    
-    public static final byte MAPPING_OPTION = 0x04;  
-    public static final byte OBJECT_CLASSIFICATION = 0x10;    
-    public static final byte MODCA_INTERCHANGE_SET = 0x18;    
-    public static final byte FONT_DESCRIPTOR_SPECIFICATION = 0x1F;    
-    public static final byte OBJECT_FUNCTION_SET_SPECIFICATION = 0x21;    
-    public static final byte EXTENDED_RESOURCE_LOCAL_IDENTIFIER = 0x22;    
-    public static final byte RESOURCE_LOCAL_IDENTIFIER = 0x24;   
-    public static final byte RESOURCE_SECTION_NUMBER = 0x25;   
-    public static final byte CHARACTER_ROTATION = 0x26;   
-    public static final byte OBJECT_BYTE_OFFSET = 0x2D;   
-    public static final byte ATTRIBUTE_VALUE = 0x36;   
-    public static final byte DESCRIPTOR_POSITION = 0x43;   
-    public static final byte MEDIA_EJECT_CONTROL = 0x45;  
-    public static final byte PAGE_OVERLAY_CONDITIONAL_PROCESSING = 0x46;  
-    public static final byte RESOURCE_USAGE_ATTRIBUTE = 0x47;  
-    public static final byte MEASUREMENT_UNITS = 0x4B;  
-    public static final byte OBJECT_AREA_SIZE = 0x4C;  
-    public static final byte AREA_DEFINITION = 0x4D;  
-    public static final byte COLOR_SPECIFICATION = 0x4E;  
-    public static final byte ENCODING_SCHEME_ID = 0x50;  
-    public static final byte MEDIUM_MAP_PAGE_NUMBER = 0x56;  
-    public static final byte OBJECT_BYTE_EXTENT = 0x57;  
-    public static final byte OBJECT_STRUCTURED_FIELD_OFFSET = 0x58;  
-    public static final byte OBJECT_STRUCTURED_FIELD_EXTENT = 0x59;  
-    public static final byte OBJECT_OFFSET = 0x5A;  
-    public static final byte FONT_HORIZONTAL_SCALE_FACTOR = 0x5D;  
-    public static final byte OBJECT_COUNT = 0x5E;  
-    public static final byte OBJECT_DATE_AND_TIMESTAMP = 0x62;  
-    public static final byte COMMENT = 0x65;  
-    public static final byte MEDIUM_ORIENTATION = 0x68;  
-    public static final byte RESOURCE_OBJECT_INCLUDE = 0x6C;  
-    public static final byte PRESENTATION_SPACE_RESET_MIXING = 0x70;  
-    public static final byte PRESENTATION_SPACE_MIXING_RULE = 0x71;  
-    public static final byte UNIVERSAL_DATE_AND_TIMESTAMP = 0x72;  
+    public static final byte FULLY_QUALIFIED_NAME = 0x02;
+    public static final byte MAPPING_OPTION = 0x04;
+    public static final byte OBJECT_CLASSIFICATION = 0x10;
+    public static final byte MODCA_INTERCHANGE_SET = 0x18;
+    public static final byte FONT_DESCRIPTOR_SPECIFICATION = 0x1F;
+    public static final byte OBJECT_FUNCTION_SET_SPECIFICATION = 0x21;
+    public static final byte EXTENDED_RESOURCE_LOCAL_IDENTIFIER = 0x22;
+    public static final byte RESOURCE_LOCAL_IDENTIFIER = 0x24;
+    public static final byte RESOURCE_SECTION_NUMBER = 0x25;
+    public static final byte CHARACTER_ROTATION = 0x26;
+    public static final byte OBJECT_BYTE_OFFSET = 0x2D;
+    public static final byte ATTRIBUTE_VALUE = 0x36;
+    public static final byte DESCRIPTOR_POSITION = 0x43;
+    public static final byte MEDIA_EJECT_CONTROL = 0x45;
+    public static final byte PAGE_OVERLAY_CONDITIONAL_PROCESSING = 0x46;
+    public static final byte RESOURCE_USAGE_ATTRIBUTE = 0x47;
+    public static final byte MEASUREMENT_UNITS = 0x4B;
+    public static final byte OBJECT_AREA_SIZE = 0x4C;
+    public static final byte AREA_DEFINITION = 0x4D;
+    public static final byte COLOR_SPECIFICATION = 0x4E;
+    public static final byte ENCODING_SCHEME_ID = 0x50;
+    public static final byte MEDIUM_MAP_PAGE_NUMBER = 0x56;
+    public static final byte OBJECT_BYTE_EXTENT = 0x57;
+    public static final byte OBJECT_STRUCTURED_FIELD_OFFSET = 0x58;
+    public static final byte OBJECT_STRUCTURED_FIELD_EXTENT = 0x59;
+    public static final byte OBJECT_OFFSET = 0x5A;
+    public static final byte FONT_HORIZONTAL_SCALE_FACTOR = 0x5D;
+    public static final byte OBJECT_COUNT = 0x5E;
+    public static final byte OBJECT_DATE_AND_TIMESTAMP = 0x62;
+    public static final byte COMMENT = 0x65;
+    public static final byte MEDIUM_ORIENTATION = 0x68;
+    public static final byte RESOURCE_OBJECT_INCLUDE = 0x6C;
+    public static final byte PRESENTATION_SPACE_RESET_MIXING = 0x70;
+    public static final byte PRESENTATION_SPACE_MIXING_RULE = 0x71;
+    public static final byte UNIVERSAL_DATE_AND_TIMESTAMP = 0x72;
     public static final byte TONER_SAVER = 0x74;
     public static final byte COLOR_FIDELITY = 0x75;
     public static final byte FONT_FIDELITY = 0x78;
@@ -89,14 +89,14 @@
     public static final byte DEVICE_APPEARANCE = (byte)0x97;
 
     /** the triplet identifier */
-    private byte id;
+    private final byte id;
 
     /** the triplet's data contents */
     private byte[] data;
 
     /**
      * Main constructor
-     * 
+     *
      * @param id the triplet identifier (see static definitions above)
      * @param data the data item contained in this triplet
      */
@@ -107,7 +107,7 @@
 
     /**
      * Constructor
-     * 
+     *
      * @param id the triplet identifier (see static definitions above)
      */
     public Triplet(byte id) {
@@ -116,7 +116,7 @@
 
     /**
      * Constructor
-     * 
+     *
      * @param id the triplet identifier (see static definitions above)
      * @param content the content byte data
      */
@@ -126,7 +126,7 @@
 
     /**
      * Constructor
-     * 
+     *
      * @param id the triplet identifier (see static definitions above)
      * @param data the data item (in String form) contained in this triplet
      * @throws UnsupportedEncodingException EBCIDIC encoding is not supported
@@ -134,17 +134,17 @@
     public Triplet(byte id, String data) throws UnsupportedEncodingException {
         this(id, data.getBytes(AFPConstants.EBCIDIC_ENCODING));
     }
-        
+
     /** {@inheritDoc} */
-    public void write(OutputStream os) throws IOException {
+    public void writeToStream(OutputStream os) throws IOException {
         os.write((byte)data.length + 2);
         os.write(id);
         os.write(data);
     }
-    
+
     /**
      * Returns the triplet identifier
-     * 
+     *
      * @return the triplet identifier
      */
     public byte getId() {
@@ -153,7 +153,7 @@
 
     /**
      * Sets the data contents of this triplet
-     * 
+     *
      * @param data the data contents
      */
     protected void setData(byte[] data) {

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/java2d/Java2DRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/java2d/Java2DRenderer.java?rev=689459&r1=689458&r2=689459&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/java2d/Java2DRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/java2d/Java2DRenderer.java Wed Aug 27 05:35:44 2008
@@ -135,7 +135,7 @@
     /** The current state, holds a Graphics2D and its context */
     protected Java2DGraphicsState state;
 
-    private Stack stateStack = new Stack();
+    private final Stack stateStack = new Stack();
 
     /** true if the renderer has finished rendering all the pages */
     private boolean renderingDone;
@@ -873,6 +873,12 @@
         drawImage(url, pos);
     }
 
+    private static final ImageFlavor[] FLAVOURS = new ImageFlavor[]
+                                                  {ImageFlavor.GRAPHICS2D,
+                                                      ImageFlavor.BUFFERED_IMAGE,
+                                                      ImageFlavor.RENDERED_IMAGE,
+                                                      ImageFlavor.XML_DOM};
+
     /** {@inheritDoc} */
     protected void drawImage(String uri, Rectangle2D pos, Map foreignAttributes) {
 
@@ -885,14 +891,9 @@
         try {
             ImageSessionContext sessionContext = getUserAgent().getImageSessionContext();
             info = manager.getImageInfo(uri, sessionContext);
-            final ImageFlavor[] flavors = new ImageFlavor[]
-                {ImageFlavor.GRAPHICS2D,
-                    ImageFlavor.BUFFERED_IMAGE,
-                    ImageFlavor.RENDERED_IMAGE,
-                    ImageFlavor.XML_DOM};
             Map hints = ImageUtil.getDefaultHints(sessionContext);
             org.apache.xmlgraphics.image.loader.Image img = manager.getImage(
-                    info, flavors, hints, sessionContext);
+                    info, FLAVOURS, hints, sessionContext);
             if (img instanceof ImageGraphics2D) {
                 ImageGraphics2D imageG2D = (ImageGraphics2D)img;
                 int width = (int)pos.getWidth();

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/java2d/Java2DSVGHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/java2d/Java2DSVGHandler.java?rev=689459&r1=689458&r2=689459&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/java2d/Java2DSVGHandler.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/java2d/Java2DSVGHandler.java Wed Aug 27 05:35:44 2008
@@ -20,6 +20,8 @@
 package org.apache.fop.render.java2d;
 
 import java.awt.geom.AffineTransform;
+import java.io.IOException;
+import java.util.Map;
 
 import org.w3c.dom.Document;
 
@@ -29,11 +31,14 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+import org.apache.fop.fo.extensions.ExtensionElementMapping;
 import org.apache.fop.render.AbstractGenericSVGHandler;
 import org.apache.fop.render.Renderer;
 import org.apache.fop.render.RendererContext;
+import org.apache.fop.render.RendererContextConstants;
 import org.apache.fop.svg.SVGEventProducer;
 import org.apache.fop.svg.SVGUserAgent;
+import org.apache.xmlgraphics.util.QName;
 
 /**
  * Java2D XML handler for SVG (uses Apache Batik).
@@ -66,6 +71,12 @@
         pdfi.height = ((Integer)context.getProperty(HEIGHT)).intValue();
         pdfi.currentXPosition = ((Integer)context.getProperty(XPOS)).intValue();
         pdfi.currentYPosition = ((Integer)context.getProperty(YPOS)).intValue();
+        Map foreign = (Map)context.getProperty(RendererContextConstants.FOREIGN_ATTRIBUTES);
+        QName qName = new QName(ExtensionElementMapping.URI, null, "conversion-mode");
+        if (foreign != null
+                && "bitmap".equalsIgnoreCase((String)foreign.get(qName))) {
+            pdfi.paintAsBitmap = true;
+        }
         return pdfi;
     }
 
@@ -83,6 +94,7 @@
         public int currentXPosition;
         /** see Java2D_YPOS */
         public int currentYPosition;
+        public boolean paintAsBitmap;
 
         /** {@inheritDoc} */
         public String toString() {
@@ -91,7 +103,8 @@
                 + "width = " + width + ", "
                 + "height = " + height + ", "
                 + "currentXPosition = " + currentXPosition + ", "
-                + "currentYPosition = " + currentYPosition + "}";
+                + "currentYPosition = " + currentYPosition  + ", "
+                + "paintAsBitmap = " + paintAsBitmap + "}";
         }
     }
 
@@ -103,6 +116,18 @@
             log.debug("renderSVGDocument(" + context + ", " + doc + ", " + info + ")");
         }
 
+        // fallback paint as bitmap
+        if (info.paintAsBitmap) {
+            try {
+                super.renderSVGDocument(context, doc);
+            } catch (IOException ioe) {
+                SVGEventProducer eventProducer = SVGEventProducer.Provider.get(
+                        context.getUserAgent().getEventBroadcaster());
+                eventProducer.svgRenderingError(this, ioe, getDocumentURI(doc));
+            }
+            return;
+        }
+
         int x = info.currentXPosition;
         int y = info.currentYPosition;
 
@@ -126,8 +151,8 @@
         float iw = (float) ctx.getDocumentSize().getWidth() * 1000f;
         float ih = (float) ctx.getDocumentSize().getHeight() * 1000f;
 
-        float w = (float) info.width;
-        float h = (float) info.height;
+        float w = info.width;
+        float h = info.height;
 
         AffineTransform origTransform = info.state.getGraph().getTransform();
 



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