aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/pdfbox/pdmodel/PDResources.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/pdfbox/pdmodel/PDResources.java')
-rw-r--r--src/main/java/org/pdfbox/pdmodel/PDResources.java313
1 files changed, 0 insertions, 313 deletions
diff --git a/src/main/java/org/pdfbox/pdmodel/PDResources.java b/src/main/java/org/pdfbox/pdmodel/PDResources.java
deleted file mode 100644
index 9494b69..0000000
--- a/src/main/java/org/pdfbox/pdmodel/PDResources.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/**
- * Copyright (c) 2003-2005, www.pdfbox.org
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of pdfbox; nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * http://www.pdfbox.org
- *
- */
-package org.pdfbox.pdmodel;
-
-import java.io.IOException;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.pdfbox.cos.COSBase;
-import org.pdfbox.cos.COSDictionary;
-import org.pdfbox.cos.COSName;
-import org.pdfbox.cos.COSStream;
-
-import org.pdfbox.pdmodel.common.COSDictionaryMap;
-import org.pdfbox.pdmodel.common.COSObjectable;
-
-import org.pdfbox.pdmodel.font.PDFontFactory;
-
-import org.pdfbox.pdmodel.graphics.PDExtendedGraphicsState;
-
-import org.pdfbox.pdmodel.graphics.color.PDColorSpaceFactory;
-
-import org.pdfbox.pdmodel.graphics.xobject.PDXObject;
-import org.pdfbox.pdmodel.graphics.xobject.PDXObjectImage;
-
-/**
- * This represents a set of resources available at the page/pages/stream level.
- *
- * @author Ben Litchfield (ben@benlitchfield.com)
- * @version $Revision: 1.13 $
- */
-public class PDResources implements COSObjectable
-{
- private COSDictionary resources;
-
- /**
- * Default constructor.
- */
- public PDResources()
- {
- resources = new COSDictionary();
- }
-
- /**
- * Prepopulated resources.
- *
- * @param resourceDictionary The cos dictionary for this resource.
- */
- public PDResources( COSDictionary resourceDictionary )
- {
- resources = resourceDictionary;
- }
-
- /**
- * This will get the underlying dictionary.
- *
- * @return The dictionary for these resources.
- */
- public COSDictionary getCOSDictionary()
- {
- return resources;
- }
-
- /**
- * Convert this standard java object to a COS object.
- *
- * @return The cos object that matches this Java object.
- */
- public COSBase getCOSObject()
- {
- return resources;
- }
-
- /**
- * This will get the map of fonts. This will never return null. The keys are string
- * and the values are PDFont objects.
- *
- * @return The map of fonts.
- *
- * @throws IOException If there is an error getting the fonts.
- */
- public Map getFonts() throws IOException
- {
- Map retval = null;
- COSDictionary fonts = (COSDictionary)resources.getDictionaryObject( COSName.FONT );
-
- if( fonts == null )
- {
- fonts = new COSDictionary();
- resources.setItem( COSName.FONT, fonts );
- }
-
- Map actuals = new HashMap();
- retval = new COSDictionaryMap( actuals, fonts );
- Iterator fontNames = fonts.keyList().iterator();
- while( fontNames.hasNext() )
- {
- COSName fontName = (COSName)fontNames.next();
- COSBase font = fonts.getDictionaryObject( fontName );
- //data-000174.pdf contains a font that is a COSArray, looks to be an error in the
- //PDF, we will just ignore entries that are not dictionaries.
- if( font instanceof COSDictionary )
- {
- COSDictionary fontDictionary = (COSDictionary)font;
- actuals.put( fontName.getName(), PDFontFactory.createFont( fontDictionary ) );
- }
- }
- return retval;
- }
-
- /**
- * This will get the map of PDXObjects that are in the resource dictionary.
- *
- * @return The map of xobjects.
- *
- * @throws IOException If there is an error creating the xobjects.
- */
- public Map getXObjects() throws IOException
- {
- Map retval = null;
- COSDictionary xobjects = (COSDictionary)resources.getDictionaryObject( "XObject" );
-
- if( xobjects == null )
- {
- xobjects = new COSDictionary();
- resources.setItem( "XObject", xobjects );
- }
-
- Map actuals = new HashMap();
- retval = new COSDictionaryMap( actuals, xobjects );
- Iterator imageNames = xobjects.keyList().iterator();
- while( imageNames.hasNext() )
- {
- COSName objName = (COSName)imageNames.next();
- COSBase cosObject = xobjects.getDictionaryObject(objName);
- PDXObject xobject = PDXObject.createXObject( cosObject );
- if( xobject !=null )
- {
- actuals.put( objName.getName(), xobject);
- }
- }
- return retval;
- }
-
- /**
- * This will get the map of images. An empty map will be returned if there
- * are no underlying images.
- * So far the keys are COSName of the image
- * and the value is the corresponding PDXObjectImage.
- *
- * @author By BM
- * @return The map of images.
- * @throws IOException If there is an error writing the picture.
- */
- public Map getImages() throws IOException
- {
- Map retval = null;
- COSDictionary images = (COSDictionary)resources.getDictionaryObject( "XObject" );
-
- if( images == null )
- {
- images = new COSDictionary();
- resources.setItem( "XObject", images );
- }
-
- if( images != null )
- {
- Map actuals = new HashMap();
- retval = new COSDictionaryMap( actuals, images );
- Iterator imageNames = images.keyList().iterator();
- while( imageNames.hasNext() )
- {
- COSName imageName = (COSName)imageNames.next();
- COSStream image = (COSStream)(images.getDictionaryObject(imageName));
-
- COSName subType =(COSName)image.getDictionaryObject(COSName.SUBTYPE);
- if( subType.equals(COSName.IMAGE) )
- {
- PDXObjectImage ximage = (PDXObjectImage)PDXObject.createXObject( image );
- if( ximage !=null )
- {
- actuals.put( imageName.getName(), ximage);
- }
- }
- }
- }
- return retval;
- }
-
- /**
- * This will set the map of fonts.
- *
- * @param fonts The new map of fonts.
- */
- public void setFonts( Map fonts )
- {
- resources.setItem( COSName.FONT, COSDictionaryMap.convert( fonts ) );
- }
-
- /**
- * This will get the map of colorspaces. This will return null if the underlying
- * resources dictionary does not have a colorspace dictionary. The keys are string
- * and the values are PDColorSpace objects.
- *
- * @return The map of colorspaces.
- *
- * @throws IOException If there is an error getting the colorspaces.
- */
- public Map getColorSpaces() throws IOException
- {
- Map retval = null;
- COSDictionary colorspaces = (COSDictionary)resources.getDictionaryObject( COSName.getPDFName( "ColorSpace" ) );
-
- if( colorspaces != null )
- {
- Map actuals = new HashMap();
- retval = new COSDictionaryMap( actuals, colorspaces );
- Iterator csNames = colorspaces.keyList().iterator();
- while( csNames.hasNext() )
- {
- COSName csName = (COSName)csNames.next();
- COSBase cs = colorspaces.getDictionaryObject( csName );
- actuals.put( csName.getName(), PDColorSpaceFactory.createColorSpace( cs ) );
- }
- }
- return retval;
- }
-
- /**
- * This will set the map of colorspaces.
- *
- * @param colorspaces The new map of colorspaces.
- */
- public void setColorSpaces( Map colorspaces )
- {
- resources.setItem( COSName.getPDFName( "ColorSpace" ), COSDictionaryMap.convert( colorspaces ) );
- }
-
- /**
- * This will get the map of graphic states. This will return null if the underlying
- * resources dictionary does not have a graphics dictionary. The keys are the graphic state
- * name as a String and the values are PDExtendedGraphicsState objects.
- *
- * @return The map of extended graphic state objects.
- */
- public Map getGraphicsStates()
- {
- Map retval = null;
- COSDictionary states = (COSDictionary)resources.getDictionaryObject( COSName.getPDFName( "ExtGState" ) );
-
- if( states != null )
- {
- Map actuals = new HashMap();
- retval = new COSDictionaryMap( actuals, states );
- Iterator names = states.keyList().iterator();
- while( names.hasNext() )
- {
- COSName name = (COSName)names.next();
- COSDictionary dictionary = (COSDictionary)states.getDictionaryObject( name );
- actuals.put( name.getName(), new PDExtendedGraphicsState( dictionary ) );
- }
- }
- return retval;
- }
-
- /**
- * This will set the map of graphics states.
- *
- * @param states The new map of states.
- */
- public void setGraphicsStates( Map states )
- {
- Iterator iter = states.keySet().iterator();
- COSDictionary dic = new COSDictionary();
- while( iter.hasNext() )
- {
- String name = (String)iter.next();
- PDExtendedGraphicsState state = (PDExtendedGraphicsState)states.get( name );
- dic.setItem( COSName.getPDFName( name ), state.getCOSObject() );
- }
- resources.setItem( COSName.getPDFName( "ExtGState" ), dic );
- }
-} \ No newline at end of file