导入poi
<dependencies>
<!--svg转png ↓-->
<dependency>
<groupId>batik</groupId>
<artifactId>batik-svggen</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>batik</groupId>
<artifactId>batik-awt-util</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>batik</groupId>
<artifactId>batik-bridge</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>batik</groupId>
<artifactId>batik-css</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>batik</groupId>
<artifactId>batik-dom</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>batik</groupId>
<artifactId>batik-gvt</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>batik</groupId>
<artifactId>batik-parser</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>batik</groupId>
<artifactId>batik-script</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>batik</groupId>
<artifactId>batik-svg-dom</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>batik</groupId>
<artifactId>batik-transcoder</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>batik</groupId>
<artifactId>batik-util</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>batik</groupId
><artifactId>batik-xml</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.5.0</version>
</dependency>
<!--svg转png ↑-->
</dependencies>
controller
@RequestMapping("/svg2png")
public static Map<String, Object> convertSvg2Png(String svgCode) throws IOException, TranscoderException {
//封装返回结果
Map<String,Object> map = new HashMap();
//返回类型为base64
Base64.Encoder encoder = Base64.getEncoder();
//使用输出字节缓冲流接收转换后的数据
ByteArrayOutputStream out = new ByteArrayOutputStream();
//转换前端的svg字符串
byte[] bytes = svgCode.getBytes("utf-8");
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
Transcoder transcoder = new PNGTranscoder();
try {
TranscoderInput input = new TranscoderInput(in);
try {
TranscoderOutput output = new TranscoderOutput(out);
transcoder.transcode(input, output);
String base64 = encoder.encodeToString(out.toByteArray());
map.put("base64", base64);
return map;
} finally {
out.close();
}
} finally {
in.close();
}
}