An SVG renderer for the Prawn PDF library.
This will take an SVG file as input and render it into your PDF. Find out more about the Prawn PDF library at:
http://wiki.github.com/sandal/prawn/
Prawn::Document.generate("svg.pdf") do
svg svg_data, :at => [x, y], :width => w
end
:at must be specified.
:width, :height, or neither may be specified; if neither is present, the resolution specified in the SVG will be used.
:cache_images, if set to true, will cache images per document based on their URL.
prawn-svg is in its infancy and does not support the full SVG specifications. It currently supports:
-
line tag
-
polyline tag
-
polygon tag
-
circle tag
-
ellipse tag (although this seems to be buggy)
-
rect tag supports rounded rects, but only one radius is applied to all corners
-
path tag supports moveto, closepath, lineto, horiz lineto, vert lineto, curveto, smooth curveto, quad curveto, smooth quad curveto does not support elliptical arc
-
text and tspan tags attributes: size, text-anchor, font-family, font-weight, dx, dy
-
svg, g and symbol tags
-
use tag
-
style tag, if css_parser gem is installed on the system (see CSS section below)
-
image tag, only with http/https schemes
-
clipPath tag
-
attributes/styles: fill, stroke, stroke-width, opacity, fill-opacity, stroke-opacity, transform, clip-path
-
transform methods: translate, rotate, scale, matrix
-
colors: HTML standard names, #xxx, #xxxxxx, rgb(1, 2, 3), rgb(1%, 2%, 3%)
-
measurements specified in pt, cm, dm, ft, in, m, mm, yd, %
-
fonts: generic CSS fonts, built in PDF fonts, and any TTF fonts in your fonts path
By default, prawn-svg has a fonts path of ["/Library/Fonts", "/usr/share/fonts/truetype/**"] to catch Mac OS X and Debian Linux users. You can add to the font path:
Prawn::Svg.font_path << "/my/font/directory"
If the css_parser gem is installed, it will handle CSS style definitions, but only simple tag, class or id definitions. It's very basic so do not expect too much of it.
prawn-svg does NOT support external references, measurements in en or em, sub-viewports, gradients/patterns or markers.
-- Copyright Roger Nesbitt roger@seriousorange.com. MIT licence.