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