Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

An experimental library for reading and converting SVG. Python 3 compatible.

Project description

.. -*- mode: rst -*-


A branch of svglib with a fixed missing import and Python 3 compatability


`Svglib` is an experimental library for reading `SVG
<>`_ files and converting them (to a
reasonable degree) to other formats using the Open Source `ReportLab
Toolkit <>`_. As a package it reads existing
SVG files and returns them converted to ReportLab Drawing objects that
can be used in a variety of ReportLab-related contexts, e.g. as Platypus
Flowable objects or in RML2PDF. As a command-line tool it converts SVG
files into PDF ones.

Tests include a vast amount of tests from the `W3C SVG test suite
It also accesses around `200 flags from
for test purposes (some of them hinting at more work to be done).

This release adds support for opacity.


- convert SVG files into ReportLab Graphics Drawing objects
- handle plain or compressed SVG files (.svg and .svgz)
- allow patterns for output files on command-line
- install a Python package named ``svglib``
- install a Python command-line script named ``svg2pdf``
- provide a Unittest test suite
- test on some standard W3C SVG tests available online
- test on some Wikipedia sample SVG symbols available online
- test on some Wikipedia sample SVG flags available online


You can use `svglib` as a Python package e.g. like in the following
interactive Python session::

>>> from svglib.svglib import svg2rlg
>>> from import renderPDF
>>> drawing = svg2rlg("file.svg")
>>> renderPDF.drawToFile(drawing, "file.pdf")

In addition a script named ``svg2pdf`` can be used more easily from
the system command-line like this (you can see more examples when
typing ``svg2pdf -h``)::

$ svg2pdf file1.svg file2.svgz
$ svg2pdf -o "%(basename)s.pdf" /path/file[12].svgz?


There are two ways to install `svglib`, depending on whether you have
the `easy_install` command available on your system or not.

1. Using `easy_install`

With the `easy_install` command on your system and a working internet
connection you can install `svglib` with only one command in a terminal::

$ easy_install svglib

If the `easy_install` command is not available to you and you want to
install it before installing `svglib`, you might want to go to the
`Easy Install homepage <>`_
and follow the `instructions there <>`_.

2. Manual installation

Alternatively, you can install the `svglib` tarball after downloading
the file ``svglib-0.6.3.tar.gz`` and decompressing it with the following

$ tar xfz svglib-0.6.3.tar.gz

Then change into the newly created directory ``svglib`` and install
`svglib` by running the following command::

$ python install

This will install a Python module file named ```` in the
``site-packages`` subfolder of your Python interpreter and a script
tool named ``svglib`` in your ``bin`` directory, usually in


`Svglib` depends on the `reportlab` package, which, as of now, you
have to install manually, before you can use `svglib`. Unfortunately,
up to its latest release, `reportlab` 2.2, this package cannot be
installed automatically using `easy_install`.


The `svglib` tarball distribution contains a Unittest test suite
in the file ```` which can be run like shown in the
following lines on the system command-line::

$ tar xfz svglib-0.6.3.tar.gz
$ cd svglib/src/test
$ python
working on [0] wikipedia/Ankh.svg
working on [1] wikipedia/Biohazard.svg
working on [2] wikipedia/Dharma_wheel.svg
working on [3] wikipedia/Eye_of_Horus_bw.svg
Ran 12 tests in 87.536s


Bug reports

Please report bugs and patches to Dinu Gherman
<>. Don't forget to include information
about the operating system, ReportLab and Python versions being used.


0.2 (2016-08-22)

- Made svglib installable via pip. Thanks to Adrien Cossa for the bug report.

0.1 (2016-03-10)

- Fork of

- Integrated changes from

- Add compatability to Python 3

Release history Release notifications

This version
History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
svglib3-0.2.0-py2-none-any.whl (21.7 kB) Copy SHA256 hash SHA256 Wheel 2.7 Aug 22, 2016
svglib3-0.2.0.tar.gz (528.6 kB) Copy SHA256 hash SHA256 Source None Aug 22, 2016

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page