Using Skia's PDF Backend
========================
Here is an example of using Skia's PDF backend (SkPDF) via the
SkDocument and SkCanvas APIs.
* * *
SkPDF Limitations
------------------------------------------
There are several corners of Skia's public API that SkPDF currently
does not handle because either no known client uses the feature or
there is no simple PDF-ish way to handle it.
In this document:
+ **drop** means to draw nothing.
+ **ignore** means to draw without the effect
+ **expand** means to implement something in a non-PDF-ish way.
This may mean to rasterize vector graphics, to expand paths with
path effects into many individual paths, or to convert text to
paths.
Effect | text | images | everything
else |
SkMaskFilter | drop | ignore | ignore |
SkPathEffect | ignore | n/a | expand |
SkColorFilter | ignore | expand | ignore |
SkImageFilter | expand | expand | expand |
unsupported SkXferModes | ignore | ignore | ignore |
non-gradient SkShader | expand | n/a | expand |
Notes:
- *SkImageFilter*: When SkImageFilter is expanded, text-as-text is lost.
- *SkXferMode*: The following transfer modes are not natively
supported by PDF: DstOver, SrcIn, DstIn, SrcOut, DstOut, SrcATop,
DstATop, and Modulate.
Other limitations:
- *drawText with VerticalText* — drop. No known clients seem to make use
of the VerticalText flag.
- *drawTextOnPath* — expand. (Text-as-text is lost.)
- *drawVertices* — drop.
- *drawPatch* — drop.
* * *