2017-07-21 3 views
1

私はPNGのにSVG年代を変換するコードを書いている:Apache BatikいいえWriteAdapterは利用できますか?

package com.example; 

import java.io.*; 
import java.nio.file.Paths; 
import org.apache.batik.transcoder.image.PNGTranscoder; 
import org.apache.batik.transcoder.SVGAbstractTranscoder; 
import org.apache.batik.transcoder.TranscoderInput; 
import org.apache.batik.transcoder.TranscoderOutput; 

public class Main { 

    public static void main(String [] args) throws Exception { 

     // read the input SVG document into TranscoderInput 
     String svgURI = Paths.get(args[0]).toUri().toURL().toString(); 
     TranscoderInput input = new TranscoderInput(svgURI); 
     // define OutputStream to PNG Image and attach to TranscoderOutput 
     OutputStream ostream = new FileOutputStream("out.png"); 
     TranscoderOutput output = new TranscoderOutput(ostream); 
     // create a JPEG transcoder 
     PNGTranscoder t = new PNGTranscoder(); 
     // set the transcoding hints 
     t.addTranscodingHint(SVGAbstractTranscoder.KEY_HEIGHT, new Float(600)); 
     t.addTranscodingHint(SVGAbstractTranscoder.KEY_WIDTH, new Float(600)); 
     // convert and write output 
     t.transcode(input, output); 
     // flush and close the stream then exit 
     ostream.flush(); 
     ostream.close(); 
    } 
} 

私はSVGのさまざまなでそれを実行し、次の例外を取得:(Mavenので報告された)

Exception in thread "main" org.apache.batik.transcoder.TranscoderException: null 
Enclosed Exception: 
Could not write PNG file because no WriteAdapter is availble 
    at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:132) 
    at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142) 
    at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156) 
    at com.example.Main.main(Main.java:26) 

バティックのバージョンを:

version=1.9 
groupId=org.apache.xmlgraphics 
artifactId=batik-transcoder 

Batik 1.7で同じエラーが発生します。

提案?

答えて

2

問題は、xmlgraphics-batik-usersメーリングリストのPeter Coppensによって解決されました。この添加によって予想されるように不可解な例外が消える

<dependency> 
    <groupId>org.apache.xmlgraphics</groupId> 
    <artifactId>batik-codec</artifactId> 
    <version>1.9</version> 
</dependency> 

とコード機能:問題はバティック1.9用のMavenリポジトリのpom.xmlに追加することによって対処することができ依存し、欠落していることです。これはBatk 1.7(https://bz.apache.org/bugzilla/show_bug.cgi?id=44682)のバグとして報告されました。

+0

pom.xmlはどこにありますか? – Lokesh

+0

私のpom.xmlの依存関係のノードが含ま: org.apache.xmlgraphics バティック・トランスコーダ 1.9 org.apache.xmlgraphics バティック・コーデック 1.9 希望に役立ちます。 –

関連する問題