[ 
https://issues.apache.org/jira/browse/PDFBOX-2274?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14109079#comment-14109079
 ] 

Dominic Tubach commented on PDFBOX-2274:
----------------------------------------

As far as I can see the decodeResult currently only depends on the actual 
decoding in JPXFilter to get the color space. Maybe I've missed another...
However, should there be an automatic change of dictionaries if I don't request 
it, even though it's for repair?
I'm not sure that all filters that intend to do changes actually change 
anything, e.g. in JBIG2Filter there's the following code:
{code}
DecodeResult result = new DecodeResult(new COSDictionary());
result.getParameters().addAll(parameters);
...
if (!parameters.containsKey(COSName.COLORSPACE))
{
    result.getParameters().setName(COSName.COLORSPACE, 
COSName.DEVICEGRAY.getName());
}

return new DecodeResult(parameters);
{code}

> Decoding issue in PDImageXObject
> --------------------------------
>
>                 Key: PDFBOX-2274
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-2274
>             Project: PDFBox
>          Issue Type: Bug
>          Components: PDModel
>    Affects Versions: 2.0.0
>            Reporter: Dominic Tubach
>
> I'm using JpegFactory to create an PDImageXObject from a content stream. 
> There the constrcutor
> {code}
> PDImageXObject(PDDocument document, InputStream filteredStream, 
>             COSBase cosFilter, int width, int height, int bitsPerComponent, 
>             PDColorSpace initColorSpace)
> {code}
> is used.
> I've found the following issue:
> The method getUnfilteredStream() of the COSStream in the PDImageXObject 
> returns an input stream containing a RandomAccessFileInputStream with
> {{currentPosition = 50814}} and {{endPosition = 1440000}} and my following 
> operation fails.
> If the method doDecode() of the COSStream is called before the filter is set 
> in the COSStream the input stream returned by getUnfilteredStream() contains 
> a RandomAccessFileInputStream with {{currentPosition = 0}} and {{endPosition 
> = 50814}} and the result is as expected.
> I've achieved this by adding
> {code}
> getStream().getStream().getDecodeResult();
> {code}
> before
> {code}
> getCOSStream().setItem(COSName.FILTER, cosFilter);
> {code}
> in the PDImageXObject contructor.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to