Difference between revisions of "OpenDocument SVG Correspondence"
PeterMoulder (talk | contribs) (* Circle) |
PeterMoulder (talk | contribs) (* 9.8 ellipse) |
||
Line 48: | Line 48: | ||
For converting between OpenDocument's start-angle,end-angle format to SVG's endpoint representation, see http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes, principally sections [http://www.w3.org/TR/SVG11/implnote.html#ArcConversionCenterToEndpoint F.6.4] and [http://www.w3.org/TR/SVG11/implnote.html#ArcConversionEndpointToCenter F.6.5]. | For converting between OpenDocument's start-angle,end-angle format to SVG's endpoint representation, see http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes, principally sections [http://www.w3.org/TR/SVG11/implnote.html#ArcConversionCenterToEndpoint F.6.4] and [http://www.w3.org/TR/SVG11/implnote.html#ArcConversionEndpointToCenter F.6.5]. | ||
==== 9.8 Ellipse ==== | |||
draw:ellipse element: Can use svg:ellipse if draw:kind="full"; the more general case is as for draw:circle (see above) except for its svg:rx and svg:ry attributes instead of svg:r. | |||
OpenDocument allows svg:rx and svg:ry to be inferred from position & size attributes, whereas the rx and ry attributes of svg:ellipse are required. | |||
(The OpenDocument spec has a typo saying svg:rx twice instead of "svg:rx and svg:ry".) | |||
==== 9.2.15 Common Drawing Shape Attributes ==== | ==== 9.2.15 Common Drawing Shape Attributes ==== |
Revision as of 02:05, 1 February 2005
Section 9.2 (pp275-) of the OpenDocument specification (available at http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office) is the most obviously related to SVG.
9.2 Drawing Shapes
9.2.1 Rectangle
draw:rect element: svg:rect (http://www.w3.org/TR/SVG11/shapes.html#RectElement)
draw:corner-radius attribute: rx. (OpenDocument has no equivalent of specifying both rx and ry, so we may forbid specifying ry in OpenDocument SVG fragments.)
9.2.2 Line
draw:line element: svg:line (http://www.w3.org/TR/SVG11/shapes.html#LineElement)
9.2.3 Polyline
draw:polyline element: svg:polyline (http://www.w3.org/TR/SVG11/shapes.html#PolylineElement)
svg:points attribute: points. The OpenDocument specification is (at first glance at least) ambiguous as to whether coordinates can contain units, whereas the SVG spec disallows units.
9.2.4 Polygon
draw:polygon element: svg:polygon
9.2.5 Regular Polygon
draw:regular-polygon element: svg:path supplemented by draw:blah attributes used as hints to editing programs (similar to the star tool in inkscape).
(Note that svg:polygon doesn't in general suffice, because of the draw:sharpness attribute.)
Consider hinting only what cannot be inferred from the path data, to reduce problems from conflicts between the path data and hints.
9.2.6 Path
draw:path element: svg:path.
svg:d attribute: d. (Though note the OpenDocument comment "Some implementations may only supports a subset of the SVG path specification, for instance no mixtures of open and closed curves for one shape, or no elliptical arc command.")
9.2.7 Circle
draw:circle element: can use svg:circle if draw:kind="full"; all kinds can be represented with svg:path. (http://www.w3.org/TR/SVG11/paths.html#PathDataEllipticalArcCommands for the curved part).
Note that in OpenDocument, its svg:cx and svg:cy attributes may be inferred from the position & size attributes (see section 9.2.15 below), whereas in SVG 1.1 cx and cy each default to 0 if unspecified.
In OpenDocument, absence of svg:r attribute means that the radius is to be calculated from the size attribute[*1], whereas SVG 1.1 requires an r attribute.
[*1]: The specification actually says calculated from both size and position attributes, though I think position is irrelevant, whereas I'd guess that the svg:start-angle and svg:end-angle attributes are relevant. The OpenDocument specification gives no further information about how to calculate radius.
For converting between OpenDocument's start-angle,end-angle format to SVG's endpoint representation, see http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes, principally sections F.6.4 and F.6.5.
9.8 Ellipse
draw:ellipse element: Can use svg:ellipse if draw:kind="full"; the more general case is as for draw:circle (see above) except for its svg:rx and svg:ry attributes instead of svg:r.
OpenDocument allows svg:rx and svg:ry to be inferred from position & size attributes, whereas the rx and ry attributes of svg:ellipse are required.
(The OpenDocument spec has a typo saying svg:rx twice instead of "svg:rx and svg:ry".)
9.2.15 Common Drawing Shape Attributes
Name
The OpenDocument specification doesn't mention the interpretation or use of its draw:name attribute. Probably it's a human-readable name used only in dialog boxes of editors for OpenDocument documents. If so, then it can stay as draw:name, and can safely be ignored by most SVG user agents.
Position
The OpenDocument standard allows specifying svg:x and svg:y attributes (though in some cases doesn't mention their interpretation; probably ignored); whereas the SVG 1.1 spec allows x and y attributes on only a few elements (typically those that don't otherwise specify their position).
Size
The OpenDocument standard allows specifying a svg:width and/or svg:height attribute for many shapes, typically saying that these attributes "may" be ignored. The SVG 1.1 standard does not allow specifying width or height attributes other than for rect, image, foreignObject, and a few other things (see http://www.w3.org/TR/SVG11/attindex.html).