Author: lehmi
Date: Sun Jul 22 13:39:48 2012
New Revision: 1364299

URL: http://svn.apache.org/viewvc?rev=1364299&view=rev
Log:
PDFBOX-1359: use current resources instead of page resources if a form doesn't 
provide its own resources

Modified:
    
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/Invoke.java
    
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/Invoke.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/Invoke.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/Invoke.java?rev=1364299&r1=1364298&r2=1364299&view=diff
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/Invoke.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/Invoke.java 
Sun Jul 22 13:39:48 2012
@@ -19,7 +19,6 @@ package org.apache.pdfbox.util.operator;
 import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.cos.COSStream;
-import org.apache.pdfbox.pdmodel.PDPage;
 import org.apache.pdfbox.pdmodel.PDResources;
 import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObject;
 import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectForm;
@@ -40,10 +39,9 @@ import java.util.Map;
  */
 public class Invoke extends OperatorProcessor
 {
-    //private Set inProcess = new TreeSet();
-
     /**
      * process : Do - Invoke a named xobject.
+     * 
      * @param operator The operator that is being executed.
      * @param arguments List
      *
@@ -53,7 +51,7 @@ public class Invoke extends OperatorProc
     {
         COSName name = (COSName) arguments.get( 0 );
 
-        Map xobjects = context.getXObjects();
+        Map<String,PDXObject> xobjects = context.getXObjects();
         PDXObject xobject = (PDXObject) xobjects.get(name.getName());
         if (this.context instanceof PDFMarkedContentExtractor)
         {
@@ -63,15 +61,10 @@ public class Invoke extends OperatorProc
         if(xobject instanceof PDXObjectForm)
         {
             PDXObjectForm form = (PDXObjectForm)xobject;
-            COSStream invoke = (COSStream)form.getCOSObject();
+            COSStream formContentstream = form.getCOSStream();
+            // find some optional resources, instead of using the current 
resources
             PDResources pdResources = form.getResources();
-            PDPage page = context.getCurrentPage();
-            if(pdResources == null)
-            {
-                pdResources = page.findResources();
-            }
-
-            getContext().processSubStream( page, pdResources, invoke );
+            getContext().processSubStream( context.getCurrentPage(), 
pdResources, formContentstream );
         }
     }
 }

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/Invoke.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/Invoke.java?rev=1364299&r1=1364298&r2=1364299&view=diff
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/Invoke.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/Invoke.java
 Sun Jul 22 13:39:48 2012
@@ -120,21 +120,17 @@ public class Invoke extends OperatorProc
             context.getGraphicsStack().push( 
(PDGraphicsState)context.getGraphicsState().clone() );
             
             PDXObjectForm form = (PDXObjectForm)xobject;
-            COSStream invoke = (COSStream)form.getCOSObject();
+            COSStream formContentstream = form.getCOSStream();
+            // find some optional resources, instead of using the current 
resources
             PDResources pdResources = form.getResources();
-            if(pdResources == null)
-            {
-                pdResources = page.findResources();
-            }
-            // if there is an optional form matrix, we have to
-            // map the form space to the user space
+            // if there is an optional form matrix, we have to map the form 
space to the user space
             Matrix matrix = form.getMatrix();
             if (matrix != null) 
             {
                 Matrix xobjectCTM = matrix.multiply( 
context.getGraphicsState().getCurrentTransformationMatrix());
                 
context.getGraphicsState().setCurrentTransformationMatrix(xobjectCTM);
             }
-            getContext().processSubStream( page, pdResources, invoke );
+            getContext().processSubStream( page, pdResources, 
formContentstream );
             
             // restore the graphics state
             context.setGraphicsState( 
(PDGraphicsState)context.getGraphicsStack().pop() );


Reply via email to