You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/10/31 09:21:47 UTC
svn commit: r1635720 - in /pdfbox/trunk:
pdfbox/src/main/java/org/apache/pdfbox/pdmodel/
pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/
preflight/src/main/java/org/apache/pdfbox/preflight/graphic/
Author: jahewson
Date: Fri Oct 31 08:21:47 2014
New Revision: 1635720
URL: http://svn.apache.org/r1635720
Log:
PDFBOX-2407: Fix issues with preflight colors
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpace.java
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/graphic/StandardColorSpaceHelper.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java?rev=1635720&r1=1635719&r2=1635720&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java Fri Oct 31 08:21:47 2014
@@ -96,30 +96,6 @@ public final class PDResources implement
*/
public PDColorSpace getColorSpace(COSName name) throws IOException
{
- // check for default color spaces - todo: move this into PDColorSpace.create?
- if (name.equals(COSName.DEVICECMYK) &&
- get(COSName.COLORSPACE, COSName.DEFAULT_CMYK) != null)
- {
- name = COSName.DEFAULT_CMYK;
- }
- else if (name.equals(COSName.DEVICERGB) &&
- get(COSName.COLORSPACE, COSName.DEFAULT_RGB) != null)
- {
- name = COSName.DEFAULT_RGB;
- }
- else if (name.equals(COSName.DEVICEGRAY) &&
- get(COSName.COLORSPACE, COSName.DEFAULT_GRAY) != null)
- {
- name = COSName.DEFAULT_GRAY;
- }
- else if (name.equals(COSName.DEVICECMYK) ||
- name.equals(COSName.DEVICERGB) ||
- name.equals(COSName.DEVICEGRAY))
- {
- // built-in device color spaces
- return PDColorSpace.create(name, this);
- }
-
// get the instance
COSBase object = get(COSName.COLORSPACE, name);
if (object != null)
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpace.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpace.java?rev=1635720&r1=1635719&r2=1635720&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpace.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpace.java Fri Oct 31 08:21:47 2014
@@ -71,6 +71,35 @@ public abstract class PDColorSpace imple
{
COSName name = (COSName)colorSpace;
+ // default color spaces
+ if (resources != null)
+ {
+ COSName defaultName = null;
+ if (name.equals(COSName.DEVICECMYK) &&
+ resources.hasColorSpace(COSName.DEFAULT_CMYK))
+ {
+ defaultName = COSName.DEFAULT_CMYK;
+ }
+ else if (name.equals(COSName.DEVICERGB) &&
+ resources.hasColorSpace(COSName.DEFAULT_RGB))
+ {
+ defaultName = COSName.DEFAULT_RGB;
+ }
+ else if (name.equals(COSName.DEVICEGRAY) &&
+ resources.hasColorSpace(COSName.DEFAULT_GRAY))
+ {
+ defaultName = COSName.DEFAULT_GRAY;
+ }
+
+ if (resources.hasColorSpace(defaultName))
+ {
+ return resources.getColorSpace(defaultName);
+ }
+ }
+
+ // ---------------
+
+ // built-in color spaces
if (name == COSName.DEVICECMYK || name == COSName.CMYK)
{
return PDDeviceCMYK.INSTANCE;
Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/graphic/StandardColorSpaceHelper.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/graphic/StandardColorSpaceHelper.java?rev=1635720&r1=1635719&r2=1635720&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/graphic/StandardColorSpaceHelper.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/graphic/StandardColorSpaceHelper.java Fri Oct 31 08:21:47 2014
@@ -419,15 +419,18 @@ public class StandardColorSpaceHelper im
try
{
- if (pdcs.getName().equals(ColorSpaces.DeviceCMYK.getLabel()))
+ if (pdcs.getName().equals(ColorSpaces.DeviceCMYK.getLabel()) &&
+ resources.hasColorSpace(COSName.DEFAULT_CMYK))
{
defaultCS = resources.getColorSpace(COSName.DEFAULT_CMYK);
}
- else if (pdcs.getName().equals(ColorSpaces.DeviceRGB.getLabel()))
+ else if (pdcs.getName().equals(ColorSpaces.DeviceRGB.getLabel()) &&
+ resources.hasColorSpace(COSName.DEFAULT_RGB))
{
defaultCS = resources.getColorSpace(COSName.DEFAULT_RGB);
}
- else if (pdcs.getName().equals(ColorSpaces.DeviceGray.getLabel()))
+ else if (pdcs.getName().equals(ColorSpaces.DeviceGray.getLabel()) &&
+ resources.hasColorSpace(COSName.DEFAULT_GRAY))
{
defaultCS = resources.getColorSpace(COSName.DEFAULT_GRAY);
}