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 2021/03/14 16:57:24 UTC
svn commit: r1887639 - in
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics: ./
color/ form/ image/ optionalcontent/
Author: lehmi
Date: Sun Mar 14 16:57:24 2021
New Revision: 1887639
URL: http://svn.apache.org/viewvc?rev=1887639&view=rev
Log:
PDFBOX-4892: use convenience methods to simplify code
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDXObject.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDOutputIntent.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/form/PDFormXObject.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDXObject.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDXObject.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDXObject.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDXObject.java Sun Mar 14 16:57:24 2021
@@ -72,7 +72,7 @@ public class PDXObject implements COSObj
else if (COSName.FORM.getName().equals(subtype))
{
ResourceCache cache = resources != null ? resources.getResourceCache() : null;
- COSDictionary group = (COSDictionary)stream.getDictionaryObject(COSName.GROUP);
+ COSDictionary group = stream.getCOSDictionary(COSName.GROUP);
if (group != null && COSName.TRANSPARENCY.equals(group.getCOSName(COSName.S)))
{
return new PDTransparencyGroup(stream, cache);
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java Sun Mar 14 16:57:24 2021
@@ -115,7 +115,7 @@ public abstract class PDCIEDictionaryBas
*/
public final PDTristimulus getWhitepoint()
{
- COSArray wp = (COSArray) dictionary.getDictionaryObject(COSName.WHITE_POINT);
+ COSArray wp = dictionary.getCOSArray(COSName.WHITE_POINT);
if (wp == null)
{
wp = new COSArray();
@@ -135,7 +135,7 @@ public abstract class PDCIEDictionaryBas
*/
public final PDTristimulus getBlackPoint()
{
- COSArray bp = (COSArray) dictionary.getDictionaryObject(COSName.BLACK_POINT);
+ COSArray bp = dictionary.getCOSArray(COSName.BLACK_POINT);
if (bp == null)
{
bp = new COSArray();
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java Sun Mar 14 16:57:24 2021
@@ -113,13 +113,7 @@ public final class PDCalGray extends PDC
*/
public float getGamma()
{
- float retval = 1.0f;
- COSNumber gamma = (COSNumber) dictionary.getDictionaryObject(COSName.GAMMA);
- if (gamma != null)
- {
- retval = gamma.floatValue();
- }
- return retval;
+ return dictionary.getFloat(COSName.GAMMA, 1.0f);
}
/**
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java Sun Mar 14 16:57:24 2021
@@ -120,7 +120,7 @@ public class PDCalRGB extends PDCIEDicti
*/
public final PDGamma getGamma()
{
- COSArray gammaArray = (COSArray) dictionary.getDictionaryObject(COSName.GAMMA);
+ COSArray gammaArray = dictionary.getCOSArray(COSName.GAMMA);
if (gammaArray == null)
{
gammaArray = new COSArray();
@@ -139,7 +139,7 @@ public class PDCalRGB extends PDCIEDicti
*/
public final float[] getMatrix()
{
- COSArray matrix = (COSArray)dictionary.getDictionaryObject(COSName.MATRIX);
+ COSArray matrix = dictionary.getCOSArray(COSName.MATRIX);
if (matrix == null)
{
return new float[] { 1, 0, 0, 0, 1, 0, 0, 0, 1 };
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java Sun Mar 14 16:57:24 2021
@@ -462,7 +462,7 @@ public final class PDICCBased extends PD
*/
public PDRange getRangeForComponent(int n)
{
- COSArray rangeArray = (COSArray) stream.getCOSObject().getDictionaryObject(COSName.RANGE);
+ COSArray rangeArray = stream.getCOSObject().getCOSArray(COSName.RANGE);
if (rangeArray == null || rangeArray.size() < getNumberOfComponents() * 2)
{
return new PDRange(); // 0..1
@@ -476,7 +476,7 @@ public final class PDICCBased extends PD
*/
public COSStream getMetadata()
{
- return (COSStream)stream.getCOSObject().getDictionaryObject(COSName.METADATA);
+ return stream.getCOSObject().getCOSStream(COSName.METADATA);
}
/**
@@ -532,7 +532,7 @@ public final class PDICCBased extends PD
*/
public void setRangeForComponent(PDRange range, int n)
{
- COSArray rangeArray = (COSArray) stream.getCOSObject().getDictionaryObject(COSName.RANGE);
+ COSArray rangeArray = stream.getCOSObject().getCOSArray(COSName.RANGE);
if (rangeArray == null)
{
rangeArray = new COSArray();
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java Sun Mar 14 16:57:24 2021
@@ -194,7 +194,7 @@ public final class PDLab extends PDCIEDi
*/
public PDRange getARange()
{
- COSArray rangeArray = (COSArray) dictionary.getDictionaryObject(COSName.RANGE);
+ COSArray rangeArray = dictionary.getCOSArray(COSName.RANGE);
if (rangeArray == null)
{
rangeArray = getDefaultRangeArray();
@@ -209,7 +209,7 @@ public final class PDLab extends PDCIEDi
*/
public PDRange getBRange()
{
- COSArray rangeArray = (COSArray) dictionary.getDictionaryObject(COSName.RANGE);
+ COSArray rangeArray = dictionary.getCOSArray(COSName.RANGE);
if (rangeArray == null)
{
rangeArray = getDefaultRangeArray();
@@ -239,7 +239,7 @@ public final class PDLab extends PDCIEDi
private void setComponentRangeArray(PDRange range, int index)
{
- COSArray rangeArray = (COSArray) dictionary.getDictionaryObject(COSName.RANGE);
+ COSArray rangeArray = dictionary.getCOSArray(COSName.RANGE);
if (rangeArray == null)
{
rangeArray = getDefaultRangeArray();
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDOutputIntent.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDOutputIntent.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDOutputIntent.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDOutputIntent.java Sun Mar 14 16:57:24 2021
@@ -63,7 +63,7 @@ public final class PDOutputIntent implem
public COSStream getDestOutputIntent()
{
- return (COSStream) dictionary.getDictionaryObject(COSName.DEST_OUTPUT_PROFILE);
+ return dictionary.getCOSStream(COSName.DEST_OUTPUT_PROFILE);
}
public String getInfo()
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/form/PDFormXObject.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/form/PDFormXObject.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/form/PDFormXObject.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/form/PDFormXObject.java Sun Mar 14 16:57:24 2021
@@ -21,7 +21,6 @@ import java.io.IOException;
import java.io.InputStream;
import org.apache.pdfbox.contentstream.PDContentStream;
import org.apache.pdfbox.cos.COSArray;
-import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSFloat;
import org.apache.pdfbox.cos.COSName;
@@ -127,7 +126,7 @@ public class PDFormXObject extends PDXOb
{
if( group == null )
{
- COSDictionary dic = (COSDictionary) getCOSObject().getDictionaryObject(COSName.GROUP);
+ COSDictionary dic = getCOSObject().getCOSDictionary(COSName.GROUP);
if( dic != null )
{
group = new PDTransparencyGroupAttributes(dic);
@@ -195,13 +194,8 @@ public class PDFormXObject extends PDXOb
@Override
public PDRectangle getBBox()
{
- PDRectangle retval = null;
- COSArray array = (COSArray) getCOSObject().getDictionaryObject(COSName.BBOX);
- if (array != null)
- {
- retval = new PDRectangle(array);
- }
- return retval;
+ COSArray array = getCOSObject().getCOSArray(COSName.BBOX);
+ return array != null ? new PDRectangle(array) : null;
}
/**
@@ -275,12 +269,8 @@ public class PDFormXObject extends PDXOb
*/
public PDPropertyList getOptionalContent()
{
- COSBase base = getCOSObject().getDictionaryObject(COSName.OC);
- if (base instanceof COSDictionary)
- {
- return PDPropertyList.create((COSDictionary) base);
- }
- return null;
+ COSDictionary optionalContent = getCOSObject().getCOSDictionary(COSName.OC);
+ return optionalContent != null ? PDPropertyList.create(optionalContent) : null;
}
/**
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java Sun Mar 14 16:57:24 2021
@@ -634,8 +634,8 @@ public final class PDImageXObject extend
*/
public PDImageXObject getMask() throws IOException
{
- COSBase mask = getCOSObject().getDictionaryObject(COSName.MASK);
- if (mask instanceof COSArray)
+ COSArray mask = getCOSObject().getCOSArray(COSName.MASK);
+ if (mask != null)
{
// color key mask, no explicit mask to return
return null;
@@ -658,12 +658,7 @@ public final class PDImageXObject extend
*/
public COSArray getColorKeyMask()
{
- COSBase mask = getCOSObject().getDictionaryObject(COSName.MASK);
- if (mask instanceof COSArray)
- {
- return (COSArray)mask;
- }
- return null;
+ return getCOSObject().getCOSArray(COSName.MASK);
}
/**
@@ -819,12 +814,7 @@ public final class PDImageXObject extend
@Override
public COSArray getDecode()
{
- COSBase decode = getCOSObject().getDictionaryObject(COSName.DECODE);
- if (decode instanceof COSArray)
- {
- return (COSArray) decode;
- }
- return null;
+ return getCOSObject().getCOSArray(COSName.DECODE);
}
@Override
@@ -889,12 +879,8 @@ public final class PDImageXObject extend
*/
public PDPropertyList getOptionalContent()
{
- COSBase base = getCOSObject().getDictionaryObject(COSName.OC);
- if (base instanceof COSDictionary)
- {
- return PDPropertyList.create((COSDictionary) base);
- }
- return null;
+ COSDictionary optionalContent = getCOSObject().getCOSDictionary(COSName.OC);
+ return optionalContent != null ? PDPropertyList.create(optionalContent) : null;
}
/**
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java Sun Mar 14 16:57:24 2021
@@ -125,20 +125,15 @@ public class PDOptionalContentProperties
private COSDictionary getD()
{
- COSBase base = this.dict.getDictionaryObject(COSName.D);
- if (base instanceof COSDictionary)
+ COSDictionary d = dict.getCOSDictionary(COSName.D);
+ if (d == null)
{
- return (COSDictionary) base;
+ d = new COSDictionary();
+ // Name optional but required for PDF/A-3
+ d.setString(COSName.NAME, "Top");
+ // D is required
+ dict.setItem(COSName.D, d);
}
-
- COSDictionary d = new COSDictionary();
-
- // Name optional but required for PDF/A-3
- d.setString(COSName.NAME, "Top");
-
- // D is required
- this.dict.setItem(COSName.D, d);
-
return d;
}
@@ -173,7 +168,7 @@ public class PDOptionalContentProperties
ocgs.add(ocg.getCOSObject());
//By default, add new group to the "Order" entry so it appears in the user interface
- COSArray order = (COSArray)getD().getDictionaryObject(COSName.ORDER);
+ COSArray order = getD().getCOSArray(COSName.ORDER);
if (order == null)
{
order = new COSArray();
@@ -302,10 +297,10 @@ public class PDOptionalContentProperties
}
COSDictionary d = getD();
- COSBase base = d.getDictionaryObject(COSName.ON);
- if (base instanceof COSArray)
+ COSArray on = d.getCOSArray(COSName.ON);
+ if (on != null)
{
- for (COSBase o : (COSArray) base)
+ for (COSBase o : on)
{
COSDictionary dictionary = toDictionary(o);
if (dictionary == group.getCOSObject())
@@ -315,10 +310,10 @@ public class PDOptionalContentProperties
}
}
- base = d.getDictionaryObject(COSName.OFF);
- if (base instanceof COSArray)
+ COSArray off = d.getCOSArray(COSName.OFF);
+ if (off != null)
{
- for (COSBase o : (COSArray) base)
+ for (COSBase o : off)
{
COSDictionary dictionary = toDictionary(o);
if (dictionary == group.getCOSObject())
@@ -375,30 +370,20 @@ public class PDOptionalContentProperties
*/
public boolean setGroupEnabled(PDOptionalContentGroup group, boolean enable)
{
- COSArray on;
- COSArray off;
-
COSDictionary d = getD();
- COSBase base = d.getDictionaryObject(COSName.ON);
- if (!(base instanceof COSArray))
+ COSArray on = d.getCOSArray(COSName.ON);
+ if (on == null)
{
on = new COSArray();
d.setItem(COSName.ON, on);
}
- else
- {
- on = (COSArray) base;
- }
- base = d.getDictionaryObject(COSName.OFF);
- if (!(base instanceof COSArray))
+
+ COSArray off = d.getCOSArray(COSName.OFF);
+ if (off == null)
{
off = new COSArray();
d.setItem(COSName.OFF, off);
}
- else
- {
- off = (COSArray) base;
- }
boolean found = false;
if (enable)