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() );