[cairo] Cairo PDF output doesn't render in Acrobat

Nick De Roeck nick.de.roeck at gmail.com
Fri Apr 25 04:58:18 PDT 2008


Hi Adrian,

thanks for looking into this.
I've implemented the workaround as you suggested.

Kind regards,
Nick.

On Fri, Apr 25, 2008 at 1:18 PM, Adrian Johnson <ajohnson at redneon.com> wrote:
> Nick De Roeck wrote:
>
> > Hi,
> >
> > First of all my sincere admiration for all your nice work with Cairo.
> > This library is fantastic!
> >
> > I've got an issue with the PDF output of Cairo 1.6.4. If you run the
> > code below you'll end up with a PDF file (in attachment) which doesn't
> > render in Acrobat (8.1.2), with the error: 'a drawing error occured'.
> > I've tested this file also with OSX 1.5.2 Preview.app, which displays
> > the file just fine.
> >
> >
>
>
>
> >  // multi-step radial gradient
> > cairo_pattern_t
> >
> *lPattern=cairo_pattern_create_radial(52.5937,46.3297,0,52.5937,46.3297,53.3345);
> > cairo_pattern_add_color_stop_rgba(lPattern,0,1,1,0,1);
> > cairo_pattern_add_color_stop_rgba(lPattern,0.522222,1,0.8,0,1);
> > cairo_pattern_add_color_stop_rgba(lPattern,0.988889,1,0.6,0,1);
> >
>
>  The problem here is the last stop is not 1.0. PDF requires the first and
> last stop to be the same as the first and last values of the gradient
> function domain which in cairo generated PDFs is 0.0 and 1.0.
>
>  The cairo PDF linear gradient code will, when the first and last stops are
> not 0.0 and 1.0, move the end points of the gradient line to the end stops
> so the generated PDF gradients always have stops at 0 and 1.
>
>  The cairo PDF radial gradient code does not do this. This is a bug. Until
> this is fixed I suggest ensuring you always have stops at 0.0 and 1.0.
>
>


More information about the cairo mailing list