You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Tilman Hausherr (Jira)" <ji...@apache.org> on 2021/08/15 08:06:00 UTC

[jira] [Resolved] (PDFBOX-5258) Lazier clipping

     [ https://issues.apache.org/jira/browse/PDFBOX-5258?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tilman Hausherr resolved PDFBOX-5258.
-------------------------------------
      Assignee: Tilman Hausherr
    Resolution: Fixed

> Lazier clipping
> ---------------
>
>                 Key: PDFBOX-5258
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-5258
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: Rendering
>    Affects Versions: 2.0.24, 3.0.0 PDFBox
>            Reporter: Tilman Hausherr
>            Assignee: Tilman Hausherr
>            Priority: Major
>             Fix For: 2.0.25, 3.0.0 PDFBox
>
>
> From Stephan Schwiebert in linked PR:
> {quote}
> Calculating the intersection of two Area can take a lot of time. However, depending on the Graphics2D that is used for rendering, it may not be necessary to actually perform this operation.
> For instance, when generating an SVG, the individual clipping paths can be serialized individually, and the intersection is then calculated at runtime, when the SVG file is rendered.
> The idea of this PR is to replace PDGraphicsState.clippingPath with a list of GeneralPaths, which is lazily evaluated, truncated & cached when getCurrentClippingPath() is called (effectively leaving the current behaviour of PdfBox unchanged, and it should also not have any significant impact on the performance).
> Additionally, a new method protected void transferClip(PDGraphicsState graphicsState, Graphics2D graphics) is added to PageDrawer. By default, this method makes use of getCurrentClippingPath() to call graphics.setClip(...), which again is what PdfBox currently does.
> However, classes that extend PageDrawer can override this method, and directly access the individual clipping paths, without any need to calculate their intersection.
> In some cases (shading fills & transparency groups), it is still necessary to calculate the intersection.
> {quote}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org