繁体   English   中英

蜡染将SVG转换为JPEG

[英]Batik Convert SVG to JPEG

JPEGTranscoder transcoder = new JPEGTranscoder();
String urlPath = "D:/CRD_Material/Scheme/scheme-2.svg";

String s1 = "<svg width='350' height='450' xmlns='http://www.w3.org/2000/svg'  xmlns:xlink='http://www.w3.org/1999/xlink'>"
            + "<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->  "
            + "<g><title>Layer 1</title> "
            + " <rect fill='none' stroke='#000000' stroke-width='2' stroke-linejoin='none' stroke-linecap='none' x='18' y='23' width='213' height='352' id='svg_6'/>"
            + "   <line fill='none' stroke='#000000' stroke-width='2' stroke-linejoin='none' stroke-linecap='none' x1='17' y1='336' x2='230' y2='336' id='svg_7'/>"
            + "   <line fill='none' stroke='#000000' stroke-width='2' stroke-linejoin='none' stroke-linecap='none' x1='20' y1='58' x2='231' y2='58' id='svg_8' stroke-dasharray='2,2'/>"
            + "   <rect id='svg_3' height='65' width='181' y='74' x='31' stroke-width='2' stroke='#000000' fill='#0'/>  </g> </svg>";

FileWriter writer = new FileWriter("D:/PDFBox/test.svg");
writer.write(s1);
writer.close();

transcoder.addTranscodingHint(JPEGTranscoder.KEY_QUALITY, new Float(1.0));

TranscoderInput input = new TranscoderInput(new FileInputStream("D:/PDFBox/test.svg"));
OutputStream ostream = new FileOutputStream("D:/PDFBox/out.jpg");
TranscoderOutput output = new TranscoderOutput(ostream);

transcoder.transcode(input, output);
ostream.close();
System.exit(0);

这是我的代码,我想将SVG字符串转换为JPEG图像。 在运行此代码时,出现以下错误:

org.w3c.dom.DOMException: <unknown>:
The attribute "stroke-linecap" represents an invalid CSS value ("none").
Original message:
The "none" identifier is not a valid value for the "stroke-linecap" property

有人请帮助我..在此先感谢

stroke-linecap的唯一有效值为buttroundsquare ,请参见例如此处 默认值为butt 因此,要么不更改none一个,要么在stroke-linecap='none'删除stroke-linecap='none'段。

您的svg代码在stroke-linejoin也有类似的问题,请参见此处的有效值。

最后, fill='#0'也是不正确的。 如果要黑色,请使用fill='#000000'fill='black'

因此,新字符串可以是

String s1 = "<svg width='350' height='450' xmlns='http://www.w3.org/2000/svg'  xmlns:xlink='http://www.w3.org/1999/xlink'>"
        + "<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->  "
        + "<g><title>Layer 1</title> "
        + " <rect fill='none' stroke='#000000' stroke-width='2' x='18' y='23' width='213' height='352' id='svg_6'/>"
        + "   <line fill='none' stroke='#000000' stroke-width='2' x1='17' y1='336' x2='230' y2='336' id='svg_7'/>"
        + "   <line fill='none' stroke='#000000' stroke-width='2' x1='20' y1='58' x2='231' y2='58' id='svg_8' stroke-dasharray='2,2'/>"
        + "   <rect id='svg_3' height='65' width='181' y='74' x='31' stroke-width='2' stroke='#000000' fill='#000000'/>  </g> </svg>";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM