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: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


--

*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

Reply via email to