I use this code successfully in a Java desktop application (JUnit tests in NetBeans) to generate SVG from WMF data:
InputStream wmfStream = new ByteArrayInputStream(wmfBytes);
WMFTranscoder transcoder = new WMFTranscoder();
TranscoderInput wmf = new TranscoderInput(wmfStream);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
TranscoderOutput svg
= new TranscoderOutput(new OutputStreamWriter(bos, "UTF-8"));
transcoder.transcode(wmf, svg);
return bos.toByteArray();
If I execute the conversion in GlassFish, a headless exception is thrown:
java.awt.HeadlessException at sun.awt.HeadlessToolkit.getScreenResolution(HeadlessToolkit.java:224) at org.apache.batik.transcoder.ToSVGAbstractTranscoder.(ToSVGAbstractTranscoder.java:96) ... 33 more
How can I use Apache Batik WMF to SVG conversion in a 'headless' Java runtime environment?
The accepted answer Having problems with Apache Batik library on AWS ElasticBeanstalk Instance suggests to use a Sun JDK. However, I am already running GlassFish 4.0.1 on Oracle JDK 1.7 u 65.