Difference between revisions of "SVG Import Filter"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Fixed broken issue links (due to missing inter wiki definition for issue zilla).)
Line 1: Line 1:
 
{{SVGTOC}}
 
{{SVGTOC}}
  
SVG support is one of the most requested features for . There are two options, either SVG import for manipulating SVG graphics within  as described in [http://qa.openoffice.org/issues/show_bug.cgi?id=2497 Issue:2497], or embedding SVG graphics "display-only" within  documents as described in [http://qa.openoffice.org/issues/show_bug.cgi?id=49991 Issue:49991]. Both options have their intrinsic benefits and neither one is a complete replacement for the other. The filter that is provided here tries to translate the SVG vocabulary (or parts thereof) into native [[OpenDocument]] primitives that can be manipulated with  Draw.  
+
SVG support is [http://qa.openoffice.org/iz_votes.html the most requested feature] in OpenOffice.org. So far, there exist an external filter that has quite strong dependencies, and a proof-of-concept implementation of an internal one. [[Summer_of_Code_2007#Draw.2FImpress:_SVG_Import_Filter|Google Summer of Code 2007 project]] was accepted to get the internal implementation to a shape that would be acceptable for integration.
  
From here, you can go to the following locations. Keep in mind that these pages are "wiki" and you can add improvements and comments everywhere. Just press the edit button at the bottom of the page.  
+
The associated issues are [http://qa.openoffice.org/issues/show_bug.cgi?id=2497 Issue:2497], and [http://qa.openoffice.org/issues/show_bug.cgi?id=49991 Issue:49991] (for an intermediate solution).
 +
 
 +
== External implementation ==
 +
 
 +
The external filter (provided [http://haumacher.de/svg-import/ here]) tries to translate the SVG vocabulary (or parts thereof) into native [[OpenDocument]] primitives that can be manipulated with  Draw.
 +
 
 +
You can go to the following locations. Keep in mind that these pages are "wiki" and you can add improvements and comments everywhere. Just press the edit button at the bottom of the page.  
  
 
<ul>
 
<ul>
Line 13: Line 19:
 
</ul>
 
</ul>
  
 +
== Internal implementation ==
 +
 +
The external implementation unfortunately has very strong dependencies - [http://java.sun.com/javase/downloads/index.jsp Java 5.0], and [http://xmlgraphics.apache.org/batik/ Batik].  The goal of the internal implementation is to create a new import filter that does not require any too big libraries.
 +
 +
A proof of concept implementation written in C++ using the [[Uno|UNO]] [http://api.openoffice.org/docs/common/ref/com/sun/star/drawing/module-ix.html Drawing API] and a lighweight [http://cairographics.org/libsvg libsvg library] exists [http://svn.gnome.org/viewcvs/ooo-build/trunk/patches/src680/svg-import.diff here], but it needs a lot of work to be really usable.  Another problem is that libsvg does not seem to be too actively maintained; so the real implementation should use OOo's [http://wiki.services.openoffice.org/wiki/FastParser internal XML parser].
  
-- BernhardHaumacher - 18 Aug 2005
+
Mark Paruzel was accepted as a Google Summer of Code 2007 participant to work on this.

Revision as of 21:48, 15 April 2007

OOoSVG-110.png
SVG Import
(external impl.)
Overview
Download
Source code
Features
Restrictions
FAQ
TODO
OpenDocument
Gradients
Group opacity
Elliptic arcs
Path semantics
Coordinate systems


SVG support is the most requested feature in OpenOffice.org. So far, there exist an external filter that has quite strong dependencies, and a proof-of-concept implementation of an internal one. Google Summer of Code 2007 project was accepted to get the internal implementation to a shape that would be acceptable for integration.

The associated issues are Issue:2497, and Issue:49991 (for an intermediate solution).

External implementation

The external filter (provided here) tries to translate the SVG vocabulary (or parts thereof) into native OpenDocument primitives that can be manipulated with Draw.

You can go to the following locations. Keep in mind that these pages are "wiki" and you can add improvements and comments everywhere. Just press the edit button at the bottom of the page.

Internal implementation

The external implementation unfortunately has very strong dependencies - Java 5.0, and Batik. The goal of the internal implementation is to create a new import filter that does not require any too big libraries.

A proof of concept implementation written in C++ using the UNO Drawing API and a lighweight libsvg library exists here, but it needs a lot of work to be really usable. Another problem is that libsvg does not seem to be too actively maintained; so the real implementation should use OOo's internal XML parser.

Mark Paruzel was accepted as a Google Summer of Code 2007 participant to work on this.

Personal tools