4

The command line version of cairosvg allows scaling. Here is the output of the help function:

cairosvg -h
usage: cairosvg [-h] [-v] [-f {pdf,png,ps,svg}] [-d DPI] [-W WIDTH]
            [-H HEIGHT] [-s SCALE] [-u] [-o OUTPUT]
            input

CairoSVG - A simple SVG converter based on Cairo.

positional arguments:
   input                 input filename or URL

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program\'s version number and exit
  -f {pdf,png,ps,svg}, --format {pdf,png,ps,svg}
                        output format
  -d DPI, --dpi DPI     ratio between 1 inch and 1 pixel
  -W WIDTH, --width WIDTH
                        width of the parent container in pixels
  -H HEIGHT, --height HEIGHT
                        height of the parent container in pixels
  -s SCALE, --scale SCALE
                        output scaling factor

see also cairosvg documentation

How can one specify a scaling factor when using cairosvg2png inside of a Python script?

mcwizard
  • 451
  • 5
  • 15
  • this is clever http://stackoverflow.com/questions/4256107/running-bash-commands-in-python but I am hoping for a native python solution. – mcwizard Mar 20 '17 at 05:05

3 Answers3

4

I had the same question - the documentation doesn't make this explicit, but as it turns out, it's as simple as passing the scale=2.0 keyword argument to the svg2png method.

import cairosvg

input_fn = '/home/me/input.svg'
output_fn = '/home/me/output.png'

cairosvg.svg2png(url=input_fn, write_to=output_fn, scale=2.0)

This definitely works for me on version 2.0.3.

Peter Gaultney
  • 3,269
  • 4
  • 16
  • 20
4

On this commit 2 new parameters where added.

[... other params]
output_width=None,
output_height=None

For me output_height and output_width did the job.

Andrei Sima
  • 159
  • 1
  • 11
0

the documentation has been updated at: http://cairosvg.org/documentation/ with API documentation commit

mcwizard
  • 451
  • 5
  • 15