pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From clifford <cliffo...@paprika-software.com>
Subject Re: PDPattern PDFBOX-1094
Date Wed, 09 Nov 2016 12:26:17 GMT
Thanks for logging it :)


I did try and do a quick and dirty, I downloaded the source and changed 
PDColorSpace... never used marvin before, and it didn't want too play 
ball, in the end found one of the poms was incorrect, fixed that and 
compiled it all up.

changed  return new PDPattern(resources);

with

PDPattern p = new PDPattern(resources);
p.array = new COSArray();
p.array.add(COSName.PATTERN);
return p;

Got that object right and it added to getResources() quit nicely.

but when calling PDPageContentStream.setNonStrokingColor(PDColor) with 
PDColor using the pattern resource using 
PDPage.getResources().getColorSpace(COSName.getPDFName("R9")) when 
using  PDColor(float[] components, COSName patternName, PDColorSpace 
colorSpace)

so :-
COSArray ca = new COSArray();
ca.add(COSName.PATTERN);
PDPage.getResources().put(COSName.getPDFName("R9"),PDColorSpace.create(ca,PDPage.getResources()));

PDColor pdColour =  new PDColor(new 
float[]{colour.getRed()/255f,colour.getGreen()/255f,colour.getBlue()/255f},COSName.getPDFName("Patten1"),PDPage.getResources().getColorSpace(COSName.getPDFName("R9")));

PDPageContentStream.setNonStrokingColor(pdColour);

when calling setNonStrokingColor it duplicates the PDPattern and so the 
PDPage.getResources() ends up with another item in the colour space, 
with a completely different name, and by the way the PDF comes out, it 
dose not like this also PDFDebugger when selecting Page: 1 gets a null 
pointer so its not too happy with the result.

So I think I will wait for the proper fix, as I do not understand, the 
underline engine.


On 08/11/2016 19:41, Tilman Hausherr wrote:
> Am 08.11.2016 um 18:58 schrieb clifford:
>> I have figured it out there is a bug in PDColorSpace.
>>
>> At no point you can not get a PDPattern with the variable array set.
>>
>> so the method in PDSpecialColorSpace "public COSBase getCOSObject()" 
>> always returns null, which is why it fails to get put into the resource.
>
> You're right. I need to think about this. I have opened an issue
> https://issues.apache.org/jira/browse/PDFBOX-3560
>
> Tilman
>
>>
>>
>>
>> On 08/11/2016 17:00, Tilman Hausherr wrote:
>>> Am 08.11.2016 um 16:00 schrieb clifford:
>>>> in PDFBOX-1094 <https://issues.apache.org/jira/browse/PDFBOX-1094>

>>>> there is a file called gs-bugzilla691715.pdf
>>>>
>>>> Was this file generated by PDFBox, if so could I have the source as 
>>>> I am trying to get PDPattern to work.
>>>
>>> No, the file is from ghostscript:
>>> http://bugs.ghostscript.com/show_bug.cgi?id=691715
>>>
>>> I've never heard that people create PDFs with patterns because it's 
>>> complex. But you're welcome and hopefully you'll be helped. Last 
>>> year we had a guy who created shadings from scratch.
>>>
>>>>
>>>> when doing
>>>> cvPage.getResources().put(COSName.getPDFName("R9"),PDColorSpace.create(COSName.PATTERN,cvPage.getResources()));

>>>>
>>>>
>>>> cvPage = a PDPage object
>>>>
>>>> The Pattern is not added to the resources items, there is code in 
>>>> PDFBox that actually stops a PDPattern from being added?
>>>> I can add any other PDColorSpace object I like but not a 
>>>> COSName.PATTERN one.
>>>
>>> Can you create some small but complete code that "proves" that the 
>>> Pattern is not being added? Obviously you have something, but I, to 
>>> help you, would have to create something from scratch.
>>>
>>>
>>> Tilman
>>>
>>>>
>>>> looking at gs-bugzilla691715.pdf it looks like ColourSpace Patten 
>>>> has been added to Resources as a array under ColorSpace, how did 
>>>> they do that.
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
>>> For additional commands, e-mail: users-help@pdfbox.apache.org
>>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
> For additional commands, e-mail: users-help@pdfbox.apache.org
>

-- 

*Kind regards*

*Clifford Dann
Paprika*


T +44 (0)1732 811601
www.paprika-software.com <https://www.paprika-software.com%3C>
Latters House, High Street, Hadlow, Tonbridge, Kent, TN11 0EF, United 
Kingdom

Agency Software Worldwide Ltd.    Registered in England and Wales 01665695


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message