You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openoffice.apache.org by Armin Le Grand <Ar...@me.com> on 2011/12/19 19:07:48 UTC
Ip Clearance: 1st version of Svg replacement available
Hi *,
as mentioned in [1] I have now finished and reintegrated the first
version of the Svg replacement from the branch [2] to trunk after
uptating and building Mac and Win versions. It is stable and works well
and is also pretty complete from an Svg point of view. Main
features/differences to the version which was in OOo3.4beta are:
- IP clearance: This change allowed to remove six Gpl/Lgpl libs, namely
librsvg, libcroco, libgsf, gdk-pixbuf, glib, and pango gettext. These
were used as an external renderer. The new Svg uses an internal
interpreter in a new library and some services.
- File Format: In Odf, Svg is now embedded to the Pictures folder as one
would expect and can be easily extracted. There is also a Png file
written there as replacement image. The draw:frame is now multi-image
capable (as the spec allows). In the case of a Svg it writes a good
quality Png and the original Svg as draw:image elements. Since older
(and other) office versions are only capable of loading a single (and
thus the first) image, the Png is written first. This allows file
exchange with other and older offices. At load time, multi-image support
will choose the best quality graphic available for further work, e.g.
preferring vector format over pixel format, pixel format with
transparency over non-transparent and loss less formats over those with
losing info (you get the idea). Other Odf implementations (e.g. a
viewer) may just use the pixel graphic available. Multi-image support is
independent from Svg in principle and will work with all image file
formats. This is implemented for the Drawinglayer graphic object (used
in Draw/Impress/Calc) and the Writer graphic object (used in Writer).
- Interpretation: Svg is no longer interpreted each time it needs to be
rendered (as by an extrenal renderer), but only once transformed to a
sequence of primitives. That sequence is then used for all outputs,
transformed to the graphic object form and viewport (resolution). The
sequence itself is completely view-independent. Internally, it is reused
and thus it makes no difference if you have your Svg graphic added once
or multiple times to your document. The same is true for the replacement
Png image used. Both, the sequence of primitives and the replacement
image are created using new Uno Api services. One is capable of
converting an io::XInputStream to a sequence of primitives, the other is
able to convert every sequence of primitives to a rendering::XBitmap
with given Dpi and discrete sizes (pixels, with automatic resolution
reduction to a given maximum square pixel count). This will be useful
for other purposes, too, since it creates a fully alpha-capable
representation of anything in primitive format to use as e.g. sprite.
- Quality: For all graphic processing the created vector graphic in form
of sequence of primitives is used. This means that You will get best
quality in all zoom situations and all resolutions. This is also true
for all exports, e.g. printing or Pdf export which also use the vector
format. With an external renderer, it is unavoidable to use bitmaps with
discrete solution here, not only looking bad in high resolutions, but
also needing more space in most cases. There is one caveat since not all
paths here already use primitives; some will use the internal MetaFile
format in-between (One more reason for more reworks to primitive usages
in the future).
- Completeness: I implemented most Svg features from Svg1.1, but not yet
using animations or interactions (but possible in the future due to an
own interpreter, impossible with an extern Svg renderer). It supports
all geometric Svg forms. It supports Gradients (using a new primitive
for this which can be reused when we want to add Svg gradients to
SdrObjects one day), these have a resolution-dependent low-level format
to not waste runtime on low resolutions. It supports Masks, clipPath,
Markers, linked content, embedded graphics and Svg (intern, extern,
base64), Use nodes, Text, Text on curve and patterns. It does not yet
support filters, color profiles, embedded scripts, interactions and
linking. These can be added when needed, most of them will need to
implement new basic primitives (e.g. filtering) which would be useful
anyways.
- Side effects: I had to fix cropping (unified with new primitive) which
works now also for mirrored graphics (vecer worked) and quite some other
stuff. We are prepared for Svg gradients as possible future feature (we
can already render them now). You can work with an added Svg as with an
graphic object; crop it, Break it (To SdrObjects, limited to the
transfer over the old MetaFile format, though). You can convert an
inserted Tux to 3D, You can bend the Svg in vector quality in Draw. It
is possible to directly export the original Svg again by selecting the
object and using 'Save as Picture...'. You can add Text, Border, fill
style, pretty much the same as most other graphic objects. You can add
shadow which casts shadow as expected (also never possible with an
external renderer).
- Caveats: This is a bigger change, but most stuff is isolated in the
two mentioned services. There will be errors (I'm too long a programmer
to deny that :-)), but I tried to be as careful as possible. To find
them, Your help will be needed. Please feel free to play around with any
Svg You can find and report problems early.
[1]
http://mail-archives.apache.org/mod_mbox/incubator-ooo-dev/201112.mbox/%3Cjcamku$fep$1@dough.gmane.org%3E
[2]
https://svn.apache.org/repos/asf/incubator/ooo/branches/alg/svgreplacement
Sincerely,
Armin
--
ALG
RE: Ip Clearance: 1st version of Svg replacement available
Posted by "Dennis E. Hamilton" <de...@acm.org>.
Amazing work! Thanks for the comprehensive account.
It will be wonderful to see it show up in the nightlies.
- Dennis
-----Original Message-----
From: Armin Le Grand [mailto:Armin.Le.Grand@me.com]
Sent: Monday, December 19, 2011 10:08
To: ooo-dev@incubator.apache.org
Subject: Ip Clearance: 1st version of Svg replacement available
Hi *,
as mentioned in [1] I have now finished and reintegrated the first
version of the Svg replacement from the branch [2] to trunk after
uptating and building Mac and Win versions. It is stable and works well
and is also pretty complete from an Svg point of view. Main
features/differences to the version which was in OOo3.4beta are:
- IP clearance: This change allowed to remove six Gpl/Lgpl libs, namely
librsvg, libcroco, libgsf, gdk-pixbuf, glib, and pango gettext. These
were used as an external renderer. The new Svg uses an internal
interpreter in a new library and some services.
- File Format: [ ... ]
- Interpretation: Svg is no longer interpreted each time it needs to be
rendered (as by an extrenal renderer), [ ... ]
- Quality: [ ... ]
- Completeness: I implemented most Svg features from Svg1.1, but not yet
using animations or interactions (but possible in the future due to an
own interpreter, impossible with an extern Svg renderer). [ ... ]
- Side effects: I had to fix cropping (unified with new primitive) which
works now also for mirrored graphics (vecer worked) and quite some other
stuff. [ ... ]
- Caveats: This is a bigger change, but most stuff is isolated in the
two mentioned services. There will be errors (I'm too long a programmer
to deny that :-)), but I tried to be as careful as possible. To find
them, Your help will be needed. Please feel free to play around with any
Svg You can find and report problems early.
[1]
http://mail-archives.apache.org/mod_mbox/incubator-ooo-dev/201112.mbox/%3Cjcamku$fep$1@dough.gmane.org%3E
[2]
https://svn.apache.org/repos/asf/incubator/ooo/branches/alg/svgreplacement
Sincerely,
Armin
--
ALG
Re: Ip Clearance: 1st version of Svg replacement available
Posted by Rob Weir <ro...@apache.org>.
On Mon, Dec 19, 2011 at 1:07 PM, Armin Le Grand <Ar...@me.com> wrote:
> Hi *,
>
> as mentioned in [1] I have now finished and reintegrated the first version
> of the Svg replacement from the branch [2] to trunk after uptating and
> building Mac and Win versions. It is stable and works well and is also
> pretty complete from an Svg point of view. Main features/differences to the
> version which was in OOo3.4beta are:
>
Good work, Armin. I'm sure we all appreciate this early Christmas present.
-Rob
Re: Ip Clearance: 1st version of Svg replacement available
Posted by Armin Le Grand <Ar...@me.com>.
Hi Andrea,
On 26.12.2011 19:29, Andrea Pescetti wrote:
> On 19/12/2011 Armin Le Grand wrote:
>> as mentioned in [1] I have now finished and reintegrated the first
>> version of the Svg replacement from the branch
>
> Very good stuff, really. I can only blame you for not turning this into
> a blog post!
You are right and I'm planning to do exactly that (that was the reason
for the long message a little bit :-)). Let me do that next Year, I need
some days off right now...
> Really, all it would take is a copy and paste of the message you wrote,
> with a couple of screenshots and BugZilla links from Eric's nice post
> http://eric.bachard.org/news/index.php?post/2011/12/03/In-progress-%3A-native-support-of-the-SVG-graphic-format-in-Apache-OpenOffice.org
>
> and, if you wish to ask volunteers to test, a link to a development
> build with this feature enabled and some public repositories of SVG
> files for testing.
>
> So far there is nothing on https://blogs.apache.org/OOo/ explaining
> users what to expect for Apache OpenOffice 3.4. If developers don't post
> interesting information like this announcement there, most users will
> never get (directly or indirectly) information about it.
Absolutely right. I'll take some time next Year to blog about
enhancements already done. I've already got the blog rights, to be able
to do so.
> Regards,
> Andrea.
>
Sincerely,
Armin
--
ALG
Re: Ip Clearance: 1st version of Svg replacement available
Posted by Andrea Pescetti <pe...@openoffice.org>.
On 19/12/2011 Armin Le Grand wrote:
> as mentioned in [1] I have now finished and reintegrated the first
> version of the Svg replacement from the branch
Very good stuff, really. I can only blame you for not turning this into
a blog post!
Really, all it would take is a copy and paste of the message you wrote,
with a couple of screenshots and BugZilla links from Eric's nice post
http://eric.bachard.org/news/index.php?post/2011/12/03/In-progress-%3A-native-support-of-the-SVG-graphic-format-in-Apache-OpenOffice.org
and, if you wish to ask volunteers to test, a link to a development
build with this feature enabled and some public repositories of SVG
files for testing.
So far there is nothing on https://blogs.apache.org/OOo/ explaining
users what to expect for Apache OpenOffice 3.4. If developers don't post
interesting information like this announcement there, most users will
never get (directly or indirectly) information about it.
Regards,
Andrea.
Re: Ip Clearance: 1st version of Svg replacement available
Posted by Pedro Giffuni <pf...@apache.org>.
+1
Big kudos to Armin ...
I hadn't said it before so let me say this is really,
REALLY cool!!
Pedro.
--- Lun 19/12/11, Jürgen Schmidt <jo...@googlemail.com> ha scritto:
...
> On 12/19/11 7:07 PM, Armin Le Grand
> wrote:
> > Hi *,
> >
> > as mentioned in [1] I have now finished and
> reintegrated the first
> > version of the Svg replacement from the branch [2] to
> trunk after
> > uptating and building Mac and Win versions. It is
> stable and works well
> > and is also pretty complete from an Svg point of view.
> Main
> > features/differences to the version which was in
> OOo3.4beta are:
> >
> > - IP clearance: This change allowed to remove six
> Gpl/Lgpl libs, namely
> > librsvg, libcroco, libgsf, gdk-pixbuf, glib, and pango
> gettext. These
> > were used as an external renderer. The new Svg uses an
> internal
> > interpreter in a new library and some services.
> >
> > - File Format: In Odf, Svg is now embedded to the
> Pictures folder as one
> > would expect and can be easily extracted. There is
> also a Png file
> > written there as replacement image. The draw:frame is
> now multi-image
> > capable (as the spec allows). In the case of a Svg it
> writes a good
> > quality Png and the original Svg as draw:image
> elements. Since older
> > (and other) office versions are only capable of
> loading a single (and
> > thus the first) image, the Png is written first. This
> allows file
> > exchange with other and older offices. At load time,
> multi-image support
> > will choose the best quality graphic available for
> further work, e.g.
> > preferring vector format over pixel format, pixel
> format with
> > transparency over non-transparent and loss less
> formats over those with
> > losing info (you get the idea). Other Odf
> implementations (e.g. a
> > viewer) may just use the pixel graphic available.
> Multi-image support is
> > independent from Svg in principle and will work with
> all image file
> > formats. This is implemented for the Drawinglayer
> graphic object (used
> > in Draw/Impress/Calc) and the Writer graphic object
> (used in Writer).
> >
> > - Interpretation: Svg is no longer interpreted each
> time it needs to be
> > rendered (as by an extrenal renderer), but only once
> transformed to a
> > sequence of primitives. That sequence is then used for
> all outputs,
> > transformed to the graphic object form and viewport
> (resolution). The
> > sequence itself is completely view-independent.
> Internally, it is reused
> > and thus it makes no difference if you have your Svg
> graphic added once
> > or multiple times to your document. The same is true
> for the replacement
> > Png image used. Both, the sequence of primitives and
> the replacement
> > image are created using new Uno Api services. One is
> capable of
> > converting an io::XInputStream to a sequence of
> primitives, the other is
> > able to convert every sequence of primitives to a
> rendering::XBitmap
> > with given Dpi and discrete sizes (pixels, with
> automatic resolution
> > reduction to a given maximum square pixel count). This
> will be useful
> > for other purposes, too, since it creates a fully
> alpha-capable
> > representation of anything in primitive format to use
> as e.g. sprite.
> >
> > - Quality: For all graphic processing the created
> vector graphic in form
> > of sequence of primitives is used. This means that You
> will get best
> > quality in all zoom situations and all resolutions.
> This is also true
> > for all exports, e.g. printing or Pdf export which
> also use the vector
> > format. With an external renderer, it is unavoidable
> to use bitmaps with
> > discrete solution here, not only looking bad in high
> resolutions, but
> > also needing more space in most cases. There is one
> caveat since not all
> > paths here already use primitives; some will use the
> internal MetaFile
> > format in-between (One more reason for more reworks to
> primitive usages
> > in the future).
> >
> > - Completeness: I implemented most Svg features from
> Svg1.1, but not yet
> > using animations or interactions (but possible in the
> future due to an
> > own interpreter, impossible with an extern Svg
> renderer). It supports
> > all geometric Svg forms. It supports Gradients (using
> a new primitive
> > for this which can be reused when we want to add Svg
> gradients to
> > SdrObjects one day), these have a resolution-dependent
> low-level format
> > to not waste runtime on low resolutions. It supports
> Masks, clipPath,
> > Markers, linked content, embedded graphics and Svg
> (intern, extern,
> > base64), Use nodes, Text, Text on curve and patterns.
> It does not yet
> > support filters, color profiles, embedded scripts,
> interactions and
> > linking. These can be added when needed, most of them
> will need to
> > implement new basic primitives (e.g. filtering) which
> would be useful
> > anyways.
> >
> > - Side effects: I had to fix cropping (unified with
> new primitive) which
> > works now also for mirrored graphics (vecer worked)
> and quite some other
> > stuff. We are prepared for Svg gradients as possible
> future feature (we
> > can already render them now). You can work with an
> added Svg as with an
> > graphic object; crop it, Break it (To SdrObjects,
> limited to the
> > transfer over the old MetaFile format, though). You
> can convert an
> > inserted Tux to 3D, You can bend the Svg in vector
> quality in Draw. It
> > is possible to directly export the original Svg again
> by selecting the
> > object and using 'Save as Picture...'. You can add
> Text, Border, fill
> > style, pretty much the same as most other graphic
> objects. You can add
> > shadow which casts shadow as expected (also never
> possible with an
> > external renderer).
> >
> > - Caveats: This is a bigger change, but most stuff is
> isolated in the
> > two mentioned services. There will be errors (I'm too
> long a programmer
> > to deny that :-)), but I tried to be as careful as
> possible. To find
> > them, Your help will be needed. Please feel free to
> play around with any
> > Svg You can find and report problems early.
> >
> > [1]
> > http://mail-archives.apache.org/mod_mbox/incubator-ooo-dev/201112.mbox/%3Cjcamku$fep$1@dough.gmane.org%3E
> >
> > [2]
> > https://svn.apache.org/repos/asf/incubator/ooo/branches/alg/svgreplacement
>
> big applause Armin because i know how concentrated you have
> worked on
> this. And it allows us to implement further improvements in
> this area in
> the future.
>
> Especially how you have addressed the interoperability
> issue from the
> beginning shows how important this is for us and for the
> overall ODF story.
>
> I bet that we will see this great improvement in
> LibreOffice 3.6 ;-) And
> yes it would be good because in the end ODF and our users
> would benefit
> from it.
>
> Great work, well done
>
> Juergen
>
>
> >
> > Sincerely,
> > Armin
> > --
> > ALG
> >
>
>
Re: Ip Clearance: 1st version of Svg replacement available
Posted by Jürgen Schmidt <jo...@googlemail.com>.
On 12/19/11 7:07 PM, Armin Le Grand wrote:
> Hi *,
>
> as mentioned in [1] I have now finished and reintegrated the first
> version of the Svg replacement from the branch [2] to trunk after
> uptating and building Mac and Win versions. It is stable and works well
> and is also pretty complete from an Svg point of view. Main
> features/differences to the version which was in OOo3.4beta are:
>
> - IP clearance: This change allowed to remove six Gpl/Lgpl libs, namely
> librsvg, libcroco, libgsf, gdk-pixbuf, glib, and pango gettext. These
> were used as an external renderer. The new Svg uses an internal
> interpreter in a new library and some services.
>
> - File Format: In Odf, Svg is now embedded to the Pictures folder as one
> would expect and can be easily extracted. There is also a Png file
> written there as replacement image. The draw:frame is now multi-image
> capable (as the spec allows). In the case of a Svg it writes a good
> quality Png and the original Svg as draw:image elements. Since older
> (and other) office versions are only capable of loading a single (and
> thus the first) image, the Png is written first. This allows file
> exchange with other and older offices. At load time, multi-image support
> will choose the best quality graphic available for further work, e.g.
> preferring vector format over pixel format, pixel format with
> transparency over non-transparent and loss less formats over those with
> losing info (you get the idea). Other Odf implementations (e.g. a
> viewer) may just use the pixel graphic available. Multi-image support is
> independent from Svg in principle and will work with all image file
> formats. This is implemented for the Drawinglayer graphic object (used
> in Draw/Impress/Calc) and the Writer graphic object (used in Writer).
>
> - Interpretation: Svg is no longer interpreted each time it needs to be
> rendered (as by an extrenal renderer), but only once transformed to a
> sequence of primitives. That sequence is then used for all outputs,
> transformed to the graphic object form and viewport (resolution). The
> sequence itself is completely view-independent. Internally, it is reused
> and thus it makes no difference if you have your Svg graphic added once
> or multiple times to your document. The same is true for the replacement
> Png image used. Both, the sequence of primitives and the replacement
> image are created using new Uno Api services. One is capable of
> converting an io::XInputStream to a sequence of primitives, the other is
> able to convert every sequence of primitives to a rendering::XBitmap
> with given Dpi and discrete sizes (pixels, with automatic resolution
> reduction to a given maximum square pixel count). This will be useful
> for other purposes, too, since it creates a fully alpha-capable
> representation of anything in primitive format to use as e.g. sprite.
>
> - Quality: For all graphic processing the created vector graphic in form
> of sequence of primitives is used. This means that You will get best
> quality in all zoom situations and all resolutions. This is also true
> for all exports, e.g. printing or Pdf export which also use the vector
> format. With an external renderer, it is unavoidable to use bitmaps with
> discrete solution here, not only looking bad in high resolutions, but
> also needing more space in most cases. There is one caveat since not all
> paths here already use primitives; some will use the internal MetaFile
> format in-between (One more reason for more reworks to primitive usages
> in the future).
>
> - Completeness: I implemented most Svg features from Svg1.1, but not yet
> using animations or interactions (but possible in the future due to an
> own interpreter, impossible with an extern Svg renderer). It supports
> all geometric Svg forms. It supports Gradients (using a new primitive
> for this which can be reused when we want to add Svg gradients to
> SdrObjects one day), these have a resolution-dependent low-level format
> to not waste runtime on low resolutions. It supports Masks, clipPath,
> Markers, linked content, embedded graphics and Svg (intern, extern,
> base64), Use nodes, Text, Text on curve and patterns. It does not yet
> support filters, color profiles, embedded scripts, interactions and
> linking. These can be added when needed, most of them will need to
> implement new basic primitives (e.g. filtering) which would be useful
> anyways.
>
> - Side effects: I had to fix cropping (unified with new primitive) which
> works now also for mirrored graphics (vecer worked) and quite some other
> stuff. We are prepared for Svg gradients as possible future feature (we
> can already render them now). You can work with an added Svg as with an
> graphic object; crop it, Break it (To SdrObjects, limited to the
> transfer over the old MetaFile format, though). You can convert an
> inserted Tux to 3D, You can bend the Svg in vector quality in Draw. It
> is possible to directly export the original Svg again by selecting the
> object and using 'Save as Picture...'. You can add Text, Border, fill
> style, pretty much the same as most other graphic objects. You can add
> shadow which casts shadow as expected (also never possible with an
> external renderer).
>
> - Caveats: This is a bigger change, but most stuff is isolated in the
> two mentioned services. There will be errors (I'm too long a programmer
> to deny that :-)), but I tried to be as careful as possible. To find
> them, Your help will be needed. Please feel free to play around with any
> Svg You can find and report problems early.
>
> [1]
> http://mail-archives.apache.org/mod_mbox/incubator-ooo-dev/201112.mbox/%3Cjcamku$fep$1@dough.gmane.org%3E
>
> [2]
> https://svn.apache.org/repos/asf/incubator/ooo/branches/alg/svgreplacement
big applause Armin because i know how concentrated you have worked on
this. And it allows us to implement further improvements in this area in
the future.
Especially how you have addressed the interoperability issue from the
beginning shows how important this is for us and for the overall ODF story.
I bet that we will see this great improvement in LibreOffice 3.6 ;-) And
yes it would be good because in the end ODF and our users would benefit
from it.
Great work, well done
Juergen
>
> Sincerely,
> Armin
> --
> ALG
>
Re: Ip Clearance: 1st version of Svg replacement available
Posted by Donald Harbison <dp...@gmail.com>.
Well done! Thank Armin, this is really great stuff.
On Mon, Dec 19, 2011 at 1:07 PM, Armin Le Grand <Ar...@me.com>wrote:
> Hi *,
>
> as mentioned in [1] I have now finished and reintegrated the first version
> of the Svg replacement from the branch [2] to trunk after uptating and
> building Mac and Win versions. It is stable and works well and is also
> pretty complete from an Svg point of view. Main features/differences to the
> version which was in OOo3.4beta are:
>
> - IP clearance: This change allowed to remove six Gpl/Lgpl libs, namely
> librsvg, libcroco, libgsf, gdk-pixbuf, glib, and pango gettext. These were
> used as an external renderer. The new Svg uses an internal interpreter in a
> new library and some services.
>
> - File Format: In Odf, Svg is now embedded to the Pictures folder as one
> would expect and can be easily extracted. There is also a Png file written
> there as replacement image. The draw:frame is now multi-image capable (as
> the spec allows). In the case of a Svg it writes a good quality Png and the
> original Svg as draw:image elements. Since older (and other) office
> versions are only capable of loading a single (and thus the first) image,
> the Png is written first. This allows file exchange with other and older
> offices. At load time, multi-image support will choose the best quality
> graphic available for further work, e.g. preferring vector format over
> pixel format, pixel format with transparency over non-transparent and loss
> less formats over those with losing info (you get the idea). Other Odf
> implementations (e.g. a viewer) may just use the pixel graphic available.
> Multi-image support is independent from Svg in principle and will work with
> all image file formats. This is implemented for the Drawinglayer graphic
> object (used in Draw/Impress/Calc) and the Writer graphic object (used in
> Writer).
>
> - Interpretation: Svg is no longer interpreted each time it needs to be
> rendered (as by an extrenal renderer), but only once transformed to a
> sequence of primitives. That sequence is then used for all outputs,
> transformed to the graphic object form and viewport (resolution). The
> sequence itself is completely view-independent. Internally, it is reused
> and thus it makes no difference if you have your Svg graphic added once or
> multiple times to your document. The same is true for the replacement Png
> image used. Both, the sequence of primitives and the replacement image are
> created using new Uno Api services. One is capable of converting an
> io::XInputStream to a sequence of primitives, the other is able to convert
> every sequence of primitives to a rendering::XBitmap with given Dpi and
> discrete sizes (pixels, with automatic resolution reduction to a given
> maximum square pixel count). This will be useful for other purposes, too,
> since it creates a fully alpha-capable representation of anything in
> primitive format to use as e.g. sprite.
>
> - Quality: For all graphic processing the created vector graphic in form
> of sequence of primitives is used. This means that You will get best
> quality in all zoom situations and all resolutions. This is also true for
> all exports, e.g. printing or Pdf export which also use the vector format.
> With an external renderer, it is unavoidable to use bitmaps with discrete
> solution here, not only looking bad in high resolutions, but also needing
> more space in most cases. There is one caveat since not all paths here
> already use primitives; some will use the internal MetaFile format
> in-between (One more reason for more reworks to primitive usages in the
> future).
>
> - Completeness: I implemented most Svg features from Svg1.1, but not yet
> using animations or interactions (but possible in the future due to an own
> interpreter, impossible with an extern Svg renderer). It supports all
> geometric Svg forms. It supports Gradients (using a new primitive for this
> which can be reused when we want to add Svg gradients to SdrObjects one
> day), these have a resolution-dependent low-level format to not waste
> runtime on low resolutions. It supports Masks, clipPath, Markers, linked
> content, embedded graphics and Svg (intern, extern, base64), Use nodes,
> Text, Text on curve and patterns. It does not yet support filters, color
> profiles, embedded scripts, interactions and linking. These can be added
> when needed, most of them will need to implement new basic primitives (e.g.
> filtering) which would be useful anyways.
>
> - Side effects: I had to fix cropping (unified with new primitive) which
> works now also for mirrored graphics (vecer worked) and quite some other
> stuff. We are prepared for Svg gradients as possible future feature (we can
> already render them now). You can work with an added Svg as with an graphic
> object; crop it, Break it (To SdrObjects, limited to the transfer over the
> old MetaFile format, though). You can convert an inserted Tux to 3D, You
> can bend the Svg in vector quality in Draw. It is possible to directly
> export the original Svg again by selecting the object and using 'Save as
> Picture...'. You can add Text, Border, fill style, pretty much the same as
> most other graphic objects. You can add shadow which casts shadow as
> expected (also never possible with an external renderer).
>
> - Caveats: This is a bigger change, but most stuff is isolated in the two
> mentioned services. There will be errors (I'm too long a programmer to deny
> that :-)), but I tried to be as careful as possible. To find them, Your
> help will be needed. Please feel free to play around with any Svg You can
> find and report problems early.
>
> [1] http://mail-archives.apache.**org/mod_mbox/incubator-ooo-**
> dev/201112.mbox/%3Cjcamku$fep$**1@dough.gmane.org%3E<http://mail-archives.apache.org/mod_mbox/incubator-ooo-dev/201112.mbox/%3Cjcamku$fep$1@dough.gmane.org%3E>
> [2] https://svn.apache.org/repos/**asf/incubator/ooo/branches/**
> alg/svgreplacement<https://svn.apache.org/repos/asf/incubator/ooo/branches/alg/svgreplacement>
>
> Sincerely,
> Armin
> --
> ALG
>
>