https://github.com/simonv3/svglib
A Fork of SVGLib that should install fine with Python 3
https://github.com/simonv3/svglib
Last synced: 17 days ago
JSON representation
A Fork of SVGLib that should install fine with Python 3
- Host: GitHub
- URL: https://github.com/simonv3/svglib
- Owner: simonv3
- License: lgpl-3.0
- Created: 2015-09-07T04:19:09.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2015-09-07T22:44:42.000Z (almost 11 years ago)
- Last Synced: 2025-02-21T17:48:25.786Z (over 1 year ago)
- Language: Python
- Size: 652 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.html
- License: LICENSE
Awesome Lists containing this project
README
Svglib
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left {
clear: left }
img.align-right {
clear: right }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font-family: serif ;
font-size: 100% }
pre.literal-block, pre.doctest-block {
margin-left: 2em ;
margin-right: 2em }
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
Svglib
An experimental library for reading and converting SVG
Author:
Dinu Gherman <gherman@darwin.in-berlin.de>
Homepage:http://www.dinu-gherman.net/
Version:
Version 0.6.3
Date:
2010-03-01
Copyright:
GNU Lesser General Public Licence v3 (LGPLv3)
About
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 Wikipedia.org
for test purposes (some of them hinting at more work to be done).
This release changes the license from GPL 3 to LGPL 3, introduces
tiny bug fix reported by Harald Armin Massa and adapts to changed
URLs for Wikipedia SVG flags used for test purposes.
Features
- 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
Examples
You can use svglib as a Python package e.g. like in the following
interactive Python session:
>>> from svglib.svglib import svg2rlg
>>> from reportlab.graphics 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?
Installation
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
command:
$ 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 setup.py install
This will install a Python module file named svglib.py in the
site-packages subfolder of your Python interpreter and a script
tool named svglib in your bin directory, usually in
/usr/local/bin.
Dependencies
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.
Testing
The svglib tarball distribution contains a Unittest test suite
in the file test_svglib.py 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 test_svglib.py
......
[...]
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
OK
Bug reports
Please report bugs and patches to Dinu Gherman
<gherman@darwin.in-berlin.de>. Don't forget to include information
about the operating system, ReportLab and Python versions being used.