java后台svg字符串转成png

该篇文章只写了将SVG报文字符串转PNG,后续再更新SVG图片转PNG,如有问题点,请大家留言,谢谢!

一、引jar包

需要引入的jar包包含如下:(这里的jar包版本,大家可以根据自己的maven私服上的版本做对应关系,可以是其他版本号)


            

        org.apache.xmlgraphics

        batik-all

        1.7

        xml-apis

        xml-apis-ext

        1.3.04

        

org.apache.xmlgraphics

        batik-codec

        1.7


二、相关代码


package com.mdp.backend.frame.impl.utils;

import java.io.ByteArrayInputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStream;

import org.apache.batik.transcoder.TranscoderInput;

import org.apache.batik.transcoder.TranscoderOutput;

import org.apache.batik.transcoder.image.PNGTranscoder;

/**

* 流程图片操作

* @author lixiaolong

*

*/

public class ProcessPictureUtils {

/**

* 将svg字符串转换为png

    *

    * @param svgCode svg代码

    * @param pngFilePath 保存的路径

    * @throws TranscoderException svg代码异常

    * @throws IOException io错误

    */

    public static String convertToPng(String svgCode, String pngFilePath){

    String errorMessage = "";

        File file = new File(pngFilePath);

        FileOutputStream outputStream = null;

        try {

            file.createNewFile();

            outputStream = new FileOutputStream(file);

            convertToPng(svgCode, outputStream);

        }catch(Exception e) {

        e.printStackTrace();

        errorMessage = "将svg字符串转换为png出错!";

        Log4jUtils.info(String.format("将svg字符串转换为png出错!: Excepion:=%s",e));

        }finally {

            if (outputStream != null) {

                try {

                    outputStream.close();

                } catch (Exception e) {

                    e.printStackTrace();

                }

            }

        }

        return errorMessage;

    }

    /**

    * 将svgCode转换成png文件,直接输出到流中

    *

    * @param svgCode svg代码

    * @param outputStream 输出流

    * @throws TranscoderException 异常

    * @throws IOException io异常

    */

    public static void convertToPng(String svgCode, OutputStream outputStream){

    try {

byte[] bytes = svgCode.getBytes("utf-8");

PNGTranscoder t = new PNGTranscoder();

TranscoderInput input = new TranscoderInput(new ByteArrayInputStream(bytes));

TranscoderOutput output = new TranscoderOutput(outputStream);

t.transcode(input, output);

outputStream.flush();

} catch (Exception e) {

e.printStackTrace();

Log4jUtils.info(String.format("将svg转换成png文件,直接输出到流中出错!: Excepion:=%s",e));

}

    }

}


三、测试报文字符串样例

"\n\n\n1"

四、效果图

java后台svg字符串转成png_第1张图片

你可能感兴趣的:(java后台svg字符串转成png)