You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2013/06/05 22:09:04 UTC
svn commit: r1490022 - in
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject:
PDXObject.java PDXObjectImage.java
Author: leleueri
Date: Wed Jun 5 20:09:04 2013
New Revision: 1490022
URL: http://svn.apache.org/r1490022
Log:
[PDFBox-1627] Fix NullPointer on Page thumbnail. Now the PDXObjectImage has a createThumbnailXObject method that uses the same method as the createXObject method in the PDXObject.
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObject.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObject.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObject.java?rev=1490022&r1=1490021&r2=1490022&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObject.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObject.java Wed Jun 5 20:09:04 2013
@@ -119,6 +119,20 @@ public abstract class PDXObject implemen
*/
public static PDXObject createXObject( COSBase xobject ) throws IOException
{
+ PDXObject retval = commonXObjectCreation(xobject, false);
+ return retval;
+ }
+
+ /**
+ * Create the correct xobject from the cos base.
+ *
+ * @param xobject The cos level xobject to create.
+ * @param isthumb specify if the xobject represent a Thumbnail Image (in this case, the subtype null must be considered as an Image)
+ * @return a pdmodel xobject
+ * @throws IOException If there is an error creating the xobject.
+ */
+ protected static PDXObject commonXObjectCreation(COSBase xobject, boolean isThumb)
+ {
PDXObject retval = null;
if( xobject == null )
{
@@ -128,7 +142,8 @@ public abstract class PDXObject implemen
{
COSStream xstream = (COSStream)xobject;
String subtype = xstream.getNameAsString( COSName.SUBTYPE );
- if( subtype.equals( PDXObjectImage.SUB_TYPE ) )
+ // according to the PDF Reference : a thumbnail subtype must be Image if it is not null
+ if( PDXObjectImage.SUB_TYPE.equals( subtype ) || (subtype == null && isThumb))
{
PDStream image = new PDStream( xstream );
// See if filters are DCT or JPX otherwise treat as Bitmap-like
@@ -157,7 +172,7 @@ public abstract class PDXObject implemen
retval = new PDPixelMap(image);
}
}
- else if( subtype.equals( PDXObjectForm.SUB_TYPE ) )
+ else if( PDXObjectForm.SUB_TYPE.equals( subtype ) )
{
retval = new PDXObjectForm( xstream );
}
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java?rev=1490022&r1=1490021&r2=1490022&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java Wed Jun 5 20:09:04 2013
@@ -91,6 +91,20 @@ public abstract class PDXObjectImage ext
}
/**
+ * Create the correct thumbnail from the cos base.
+ *
+ * @param xobject The cos level xobject to create.
+ *
+ * @return a pdmodel xobject
+ * @throws IOException If there is an error creating the xobject.
+ */
+ public static PDXObject createThumbnailXObject( COSBase xobject ) throws IOException
+ {
+ PDXObject retval = commonXObjectCreation(xobject, true);
+ return retval;
+ }
+
+ /**
* Returns an java.awt.Image, that can be used for display etc.
*
* @return This PDF object as an AWT image.