Рендеринг SVG с помощью батика позволяет получить поврежденное изображение - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь использовать Batik для конвертации файла wmf в SVG, но в результате у меня получилось поврежденное изображение.

Может кто-нибудь дать совет, как правильно использовать WMFT-транскодер? Или Батик не поддерживает такой случай?

        WMFHeaderProperties prop = new WMFHeaderProperties(data);
        TranscoderInput input = new TranscoderInput(new FileInputStream(data));
        File svg = new File("data", "08000002.svg");
        System.out.println("file: " + svg.getAbsolutePath());
        OutputStream stream = new FileOutputStream(svg);
        TranscoderOutput output = new TranscoderOutput(stream);
        WMFTranscoder transcoder = new WMFTranscoder();
        transcoder.addTranscodingHint(WMFTranscoder.KEY_INPUT_WIDTH, prop.getWidthBoundsPixels());
        transcoder.addTranscodingHint(WMFTranscoder.KEY_INPUT_HEIGHT, prop.getHeightBoundsPixels());
        transcoder.addTranscodingHint(WMFTranscoder.KEY_XOFFSET, prop.getXOffset());
        transcoder.addTranscodingHint(WMFTranscoder.KEY_YOFFSET, prop.getYOffset());
        transcoder.transcode(input,output);

Есть полный код - https://gist.github.com/sergmain/1cef9921c5d7b44b2ebb53795f63f54b

Исходное изображение в wmf содержит математическую формулу

...