Опитвам се да използвам Batik за извършване на SVG преобразуване и всичко върви добре, освен че не мога да открия къде се съхранява стойността на атрибута fill
за оригиналния SVG документ в елемента Batik TextNode
. Така че в моя SVG имам следното:
<text x="276.1875" y="120.390625" text-anchor="middle" font="10px "Arial""
stroke="none" fill="#ffffff" style="-webkit-tap-highlight-color: rgb(0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 10px; line-height: normal; font-family: Arial;"
font-size="10px" font-family="Arial">
<tspan dy="3.5" >Proportion </tspan>
</text>
Това работи добре, но когато използвам своя персонализиран TextPainter
(чрез общ Bridge), за да опитам да обработя TextNode, намирам следното:
public void paint(TextNode node, Graphics2D g2d )
{
AttributedCharacterIterator aci = node.getAttributedCharacterIterator();
Paint colourInfo = (Paint)aci.getAttribute(TextAttribute.FOREGROUND); //null
Paint bgInfo = (Paint)aci.getAttribute(TextAttribute.BACKGROUND); //null
// do actual painting
}
Всъщност повечето от атрибутите, свързани с цвета, които мога да намеря, преглеждайки персонализираните текстови атрибути TextAttribute и GVT, се връщат нулеви. Обектът aci
има списък с ненулеви атрибути, но не мога да разбера какви са ключовете от програмата за отстраняване на грешки, тъй като всички те са изключени от списъците с атрибути.
Съществуващото свойство paint
на обекта Graphics2D
обикновено е зададено на цвета на блока, който току-що е нарисувал, което означава, че ако не променя нещата, просто получавам целия си текст да се показва със същия цвят като фона, което затруднява Прочети.
Как мога да намеря цвета за тези текстови възли, които са предоставени в оригиналния SVG?