首页 > 解决方案 > 在java中将svgImage转码为pdf时出现转码器错误“NoSuchMethodError”

问题描述

将 svg 图像转码为 pdf 时出现错误。它总是显示这个错误。这是我的代码和我使用的库。希望能得到大家的帮助。

    InputStream inputStream = ByteSource.wrap(elementValue.getImage()).openStream();
    FileOutputStream fos = new FileOutputStream("svgImage.svg");
    //Get SvgImage from database
    int b;
    while ((b = inputStream.read()) != -1) {
        fos.write(b);
    }
    //Transcoder
    String svg_URI_input = Paths.get("svgImage.svg").toUri().toURL().toString();
    TranscoderInput input_svg_image = new TranscoderInput(svg_URI_input);
    OutputStream pdf = new FileOutputStream("chessboard.pdf");
    TranscoderOutput output_pdf_file = new TranscoderOutput(pdf);
    PDFTranscoder transcoder = new PDFTranscoder();
    //I debug, it error on this line
    transcoder.transcode(input_svg_image, output_pdf_file);
    pdf.flush();
    pdf.close();

--

    <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>batik-transcoder</artifactId>
        <version>1.7</version>
    </dependency>
    <dependency>
        <groupId>com.kitfox.svg</groupId>
        <artifactId>svg-salamander</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>de.rototor.pdfbox</groupId>
        <artifactId>graphics2d</artifactId>
        <version>0.32</version>
    </dependency>
    <dependency>
        <groupId>avalon-framework</groupId>
        <artifactId>avalon-framework-api</artifactId>
        <version>4.2.0</version>
    </dependency>
    <dependency>
        <groupId>avalon-framework</groupId>
        <artifactId>avalon-framework-impl</artifactId>
        <version>4.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>batik-codec</artifactId>
        <version>1.7</version>
    </dependency>
    <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>fop</artifactId>
        <version>1.1</version>
        <exclusions>
            <exclusion>
                <artifactId>avalon-framework-api</artifactId>
                <groupId>org.apache.avalon.framework</groupId>
            </exclusion>
            <exclusion>
                <artifactId>avalon-framework-impl</artifactId>
                <groupId>org.apache.avalon.framework</groupId>
            </exclusion>
        </exclusions>
    </dependency>

2021-06-30 10:44:00.172 [http-nio-8080-exec-3] 错误 co.jp.regain.controllers.common.exceptions.ExceptionHandlingController.handleError:76 - 请求:http://localhost:8080/ web/operator/pdf/export 引发 org.springframework.web.util.NestedServletException:处理程序调度失败;嵌套异常是 java.lang.NoSuchMethodError: 'void org.apache.commons.logging.impl.SimpleLog.setLevel(int)'

org.springframework.web.util.NestedServletException:处理程序调度失败;嵌套异常是 java.lang.NoSuchMethodError: 'void org.apache.commons.logging.impl.SimpleLog.setLevel(int)'

引起:java.lang.NoSuchMethodError: 'void org.apache.commons.logging.impl.SimpleLog.setLevel(int)'

标签: javaspringpdfsvgpdfbox

解决方案


推荐阅读