Only just notice this.

No it dose not work.

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,

PDFDebugger when selecting Page: 1 gets a null pointer so its not too happy with the result.

Attached image of PDFDebugger screen R9 is the only one that should be there, and I did not create the rest of them

java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.done(PagePane.java:176)
sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
    java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.done(PagePane.java:165)
sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
    java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
Caused by: java.lang.NullPointerException: null
org.apache.pdfbox.rendering.TilingPaint.getAnchorRect(TilingPaint.java:202)
org.apache.pdfbox.rendering.TilingPaint.getImage(TilingPaint.java:121)
org.apache.pdfbox.rendering.TilingPaint.<init>(TilingPaint.java:87)
org.apache.pdfbox.rendering.PageDrawer.getPaint(PageDrawer.java:256)
org.apache.pdfbox.rendering.PageDrawer.getNonStrokingPaint(PageDrawer.java:529)
org.apache.pdfbox.rendering.PageDrawer.fillPath(PageDrawer.java:588)
org.apache.pdfbox.contentstream.operator.graphics.FillNonZeroRule.process(FillNonZeroRule.java:36)
org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:815)
org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:472)
org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:446)
org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149)
org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:189)
org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:208)
org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:139)
org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:68)
org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.doInBackground(PagePane.java:156)
org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.doInBackground(PagePane.java:139)
    java.lang.Thread.run(Thread.java:745)

On 08/11/2016 20:21, Tilman Hausherr wrote:
Am 08.11.2016 um 20:41 schrieb Tilman Hausherr:
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

I have just committed a change that should fix your problem. Please build from source or get a build from a snapshot directory https://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/pdfbox-app/2.0.4-SNAPSHOT/

and please give feedback whether it works now.

Tilman



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]



---------------------------------------------------------------------
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

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

Reply via email to