php-svg-lib
php-svg-lib copied to clipboard
Unable to access references defined after an element
SvgLib operates as a stream processor, rendering elements as they are encountered. This means that a reference element (e.g., defs) and styling must occur in the document prior to any other elements. Otherwise, the reference element or styling will not yet be available.
For example, the following SVG document:
<svg width="600" height="600" xmlns="http://www.w3.org/2000/svg">
<rect width="400" height="400" x="100" y="100" />
<style>
rect { stroke: blue; stroke-width: 20px; fill: orange; }
</style>
</svg>
should produce the following output:
but SvgLib renders the following:
Switching the order of elements in the SVG produces the correct output:
<svg width="600" height="600" xmlns="http://www.w3.org/2000/svg">
<style>
rect { stroke: blue; stroke-width: 20px; fill: orange; }
</style>
<rect width="400" height="400" x="100" y="100" />
</svg>