java colorspace_java – 如何处理iText“Unexpected color space / CS0”类型的异常

我不熟悉PDF规范,因此我不知道我使用过的PDF是否有效.然而,我确实通过在文件com.itextpdf.text.pdf.parser.InlineIamgeUtils方法getComponentsPerPixel(…)中更改iText来解决问题:

private static int getComponentsPerPixel(PdfName colorSpaceName, PdfDictionary colorSpaceDic){

if (colorSpaceName == null)

return 1;

if (colorSpaceName.equals(PdfName.DEVICEGRAY))

return 1;

if (colorSpaceName.equals(PdfName.DEVICERGB))

return 3;

if (colorSpaceName.equals(PdfName.DEVICECMYK))

return 4;

if (colorSpaceDic != null){

PdfArray colorSpace = colorSpaceDic.getAsArray(colorSpaceName);

if (colorSpace != null){

if (PdfName.INDEXED.equals(colorSpace.getAsName(0))){

return 1;

}

}

}

throw new IllegalArgumentException("Unexpected color space " + colorSpaceName);

}

private static int getComponentsPerPixel(PdfName colorSpaceName, PdfDictionary colorSpaceDic){

if (colorSpaceName == null)

return 1;

if (colorSpaceName.equals(PdfName.DEVICEGRAY))

return 1;

if (colorSpaceName.equals(PdfName.DEVICERGB))

return 3;

if (colorSpaceName.equals(PdfName.DEVICECMYK))

return 4;

if (colorSpaceDic != null){

PdfArray colorSpace = colorSpaceDic.getAsArray(colorSpaceName);

if (colorSpace != null){

if (PdfName.INDEXED.equals(colorSpace.getAsName(0))){

return 1;

}

} /* Begin mod # */ else {

PdfName tempName = colorSpaceDic.getAsName(colorSpaceName);

if(tempName != null) return(getComponentsPerPixel(tempName, colorSpaceDic));

} /* End mod */

}

throw new IllegalArgumentException("Unexpected color space " + colorSpaceName);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值