SVG backend: PDF implemented, tests passing

Wrapping up the svg backend work

Still some bugs to stamp out, but this is getting close to release ready.
This commit is contained in:
Andy Meneely
2015-02-24 22:33:32 -05:00
parent 05b943f914
commit 612c042d52
11 changed files with 185 additions and 69 deletions
+13 -12
View File
@@ -1,25 +1,26 @@
require 'squib'
# Our SVGs are auto-saved after each step using the configuration parameters
Squib::Deck.new(config: 'backend-config.yml') do
Squib::Deck.new(cards: 2, config: 'backend-config.yml') do
# These are all supported by the SVG backend
background color: :white
background color: :gray
text str: "Hello, world!", y: 500, width: 825, font: 'Sans bold 72', align: :center
rect x: 10, y: 10, width: 20, height: 20
circle x: 40, y: 40, radius: 25
triangle x1: 50, y1: 15, x2: 60, y2: 25, x3: 75, y3: 25
rect x: 38, y: 38, width: 750, height: 1050, x_radius: 38, y_radius: 38
circle x: 100, y: 400, radius: 25
triangle x1: 100, y1: 425, x2: 125, y2: 475, x3: 75, y3: 475
line x1: 100, y1: 620, x2: 720, y2: 620, stroke_width: 15.0
svg file: 'spanner.svg', x: 100, y: 20
svg file: 'glass-heart.svg', x: 100, y: 200, width: 100, height: 100, mask: :sangria
png file: 'shiny-purse.png', x: 250, y: 20
png file: 'shiny-purse.png', x: 250, y: 200, mask: :red
svg file: 'spanner.svg', x: 100, y: 75
png file: 'shiny-purse.png', x: 250, y: 75 # raster can still be used too
png file: 'shiny-purse.png', x: 250, y: 250, mask: :red # still renders as raster
# We can still rasterize whenever we want
save_png prefix: 'backend_'
# And our PDFs will be vectorized.
save_pdf file: 'backend_vectorized.pdf'
# And our PDFs will be vectorized .
save_pdf file: 'backend_vectorized.pdf', gap: 5
# This one is a known issue. Masking an SVG onto an SVG backend is still buggy.
# svg file: 'glass-heart.svg', x: 100, y: 200, width: 100, height: 100, mask: :sangria
# This one is, unfortunately, not possible with svg back ends
# Cairo lacks a perspective transform (currently), so we have to