EPS到SVG转换为PDF输出

时间:2014-03-26 06:28:45

标签: java svg imagemagick apache-fop eps

我将所有eps文件作为输入,这些eps文件存在于我的xml文件中。

<?xml>
<FIGURE>
    <L-GRAPHIC L="DE">
        <GRAPHIC FILENAME="abc.eps">
        </GRAPHIC>
    </L-GRAPHIC>
</FIGURE>
</xml>

Java代码使用ImageMagick

public static void main(String[] args) {
    String inputfileName = "C:\\abc.eps"; 

    try {
        System.out.println("Started" + inputfileName);
        ImageInfo info = new ImageInfo(inputfileName);

        MagickImage magick_converter = new MagickImage(info);

        String outputfile = "C:\\abc.svg"; // Output File name
        magick_converter.setFileName(outputfile);

        magick_converter.writeImage(info);
        System.out.println("Complete");

    } catch (MagickException e1) {          
        e1.printStackTrace();
    } 
}

以上代码的当前输出:

Started

之后没有任何事情发生。

请帮忙。

2 个答案:

答案 0 :(得分:1)

声明

ImageMagick解决方案不会创建矢量输出,而是像素文件格式。但它可能解决了这个问题。我发现,从eps创建svg图像的唯一开源方式是下面简要介绍的Inkscape方法。

编辑:@Chai已经找到了自己的解决方案,请参阅本页的其他地方。

手动预处理

使用开源实用程序软件ImageMagick,您可以轻松地从一种图像格式转换为另一种图像格式。最简单的形式就是:

convert image.eps image.png

使用开关,您可以调整质量和许多其他功能。

使用开源绘图软件Inkscape,您可以手动执行相同操作。只需打开eps图像并将其另存为svg图像文件即可。

程序化过程

这是使用java解决此问题的一种方法。该解决方案基于im4java ImageMagick包装器。在我的情况下,没有必要将我的ImageMagick安装连接到java库,但如果是这样的话;如何在他们的网站上提到。

import java.io.IOException;
import org.im4java.core.ConvertCmd;
import org.im4java.core.IM4JavaException;
import org.im4java.core.IMOperation;

public static void main(String[] args) throws IOException, InterruptedException, IM4JavaException {
    ConvertCmd convertCmd = new ConvertCmd();

    IMOperation imOperation = new IMOperation();

    imOperation.addImage("/home/user/images/image.eps");
    imOperation.addImage("/home/user/images/image.png");

    convertCmd.run(imOperation);
}

如果您使用maven

,则为pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>lab</groupId>
    <artifactId>imagemagick</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.im4java</groupId>
            <artifactId>im4java</artifactId>
            <version>1.4.0</version>
        </dependency>
    </dependencies>
</project>

答案 1 :(得分:1)

我找到了适当的解决方案。我使用pstoedit.exe和ghostscript将eps文件转换为我的java代码中的svg格式。 谢谢。