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

John Hewson edited comment on PDFBOX-1094 at 3/10/14 10:18 PM:
---------------------------------------------------------------

I'm extending TilingPaint so that it accepts the parent stream's initial CTM as 
a parameter. However, this information is not available in PageDrawer, or its 
superclass PDFStreamEngine. In fact, there is no class which represents a 
content stream. In order for the information we need to be available to 
PageDrawer#drawTilingPattern we need to hold a reference to the current content 
stream and have it implement a method such as getDefaultMatrix() which is then 
overridden in the various subclasses, e.g. PageContentStream, 
PatternContentStream.

Because we never needed this previously there is actually no class in PDFBox 
which represents a content stream. There is a class named PDPageContentStream 
but it is a helper class for writing content streams and does not even 
represent a "PD" object! We need to introduce a new PDContentStream class, and 
rename the confusingly named helper to something like ContentStreamBuilder and 
move it to pdfbox.pdfwriter along with the other writing classes. Then we can 
pass an instance of the new PDContentStream class to 
PageDrawer#drawTilingPattern so that we have access to the stream's default CTM.

Then I can begin to get tiling paint working...


was (Author: jahewson):
I'm extending TilingPaint so that it accepts the parent stream's initial CTM as 
a parameter. However, this information is not available in PageDrawer, or its 
superclass PDFStreamEngine. In fact, there is no class which represents a 
content stream. In order for the information we need to be available to 
PageDrawer#drawTilingPattern we need to hold a reference to the current content 
stream and have it implement a method such as getDefaultMatrix() which is then 
overridden in the various subclasses, e.g. PageContentStream, 
PatternContentStream.

Because we never needed this previously there is actually no class in PDFBox 
which represents a content stream. There is a class named PDPageContentStream 
but it is a helper class for writing content streams and does not even 
represent a "PD" object! We need to introduce a new PDContentStream class, and 
rename the confusingly named helper to something like ContentStreamBuilder and 
move it to pdfbox.pdfwriter along with the other writing classes. Then we can 
pass an instance of the new PDContentStream class to 
PageDrawer#drawTilingPattern so that we have access to the stream's default 
CTM. Phew!


> Pattern colorspace support
> --------------------------
>
>                 Key: PDFBOX-1094
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-1094
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: Rendering
>    Affects Versions: 1.6.0
>            Reporter: Andreas Lehmkühler
>            Assignee: John Hewson
>            Priority: Minor
>         Attachments: ColoredTilingPaint.patch, PATTYP1.pdf, PATTYP2.pdf, 
> PDF32000_2008_pg737.pdf, PDFStreamEngine.patch, PageDrawer.patch, 
> _pdfbox-1094-tiling_pattern.pdf-1-blurry.png, jagpdf_doc_patterns.pdf, 
> jagpdf_doc_patterns.pdf-1.png, pdfbox-1094-pdf32000_2008_pg737.pdf-1.png, 
> pdfbox-1094-pdf32000_2008_pg737.pdf-1.png, 
> pdfbox-1094-tiling_pattern.pdf-1.png, pdfbox-1094-tiling_pattern.pdf-1.png, 
> pdfbox-1094-tiling_pattern.pdf-1.png, pdfbox-1861-tracemonkey.pdf-13.png, 
> pdfbox-1861-tracemonkey.pdf-13.png, tiling_pattern.pdf
>
>
> PDFBox doesn't support PDPattern colorspaces



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

Reply via email to