如何在java中打印svg?

时间:2015-05-06 08:26:42

标签: java svg

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="12cm" height="12cm" viewBox="0 0 1000 1000"
     xmlns="http://www.w3.org/2000/svg" version="1.1">
     <line x1="100" y1="100" x2="500" y2="200" stroke="red" stroke-width="5" />
     <circle cx="200" cy="100" r="50" stroke="black" stroke-width="3" /> 
</svg>

我想在java中打印这些svg代码。我知道我应该使用print方法来执行此操作,但每次我尝试编译java程序时都会遇到一堆错误。请帮我。这是我的代码:

class svg{
    puclic static void main(String[] args){
        System.out.print("
            <?xml version=\"1.0\" standalone=\"no\"?>
            <!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" 
            \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">
            <svg width=\"12cm\" height=\"12cm\" viewBox=\"0 0 1000 1000\"
            xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">
            <line x1=\"100\" y1=\"100\" x2=\"500\" y2=\"200\" stroke=\"red\" stroke-width=\"5\" />
            <circle cx=\"200\" cy=\"100\" r=\"50\" stroke=\"black\" stroke-width=\"3\" /> 
            </svg>
            ")
    }
}

4 个答案:

答案 0 :(得分:2)

您不能在String范围内使用换行符。如果您想保留它们,则必须使用\n

进行转义

另外,你拼错了public

最重要的是,你最后忘记了;

这应该有效:

public static void main(String[] args){
    System.out.print(
        "<?xml version=\"1.0\" standalone=\"no\"?>\n" +
        "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n" + 
        "\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n" +
        "<svg width=\"12cm\" height=\"12cm\" viewBox=\"0 0 1000 1000\"\n" +
        "xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n" +
        "<line x1=\"100\" y1=\"100\" x2=\"500\" y2=\"200\" stroke=\"red\" stroke-width=\"5\" />\n" +
        "<circle cx=\"200\" cy=\"100\" r=\"50\" stroke=\"black\" stroke-width=\"3\" />\n" + 
        "</svg>");
}

答案 1 :(得分:1)

您应该看看如何为字符串添加换行符。这是由+完成的。另外,不要忘记用"包围字符串。

如果您想将任意测试格式化为Java转义字符串,那么我建议您查看一些在线工具,例如Free Online Java or .Net Escape Tool(您可以通过Google找到它们)。

这个将转义您的XML,使其如下所示。然后程序将编译并打印到控制台上。

package so;

public class StringFormatter {

    public static void main(String[] args) {
        System.out.println(

                "<?xml version=\"1.0\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \r\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<svg width=\"12cm\" height=\"12cm\" viewBox=\"0 0 1000 1000\"\r\n     xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\r\n     <line x1=\"100\" y1=\"100\" x2=\"500\" y2=\"200\" stroke=\"red\" stroke-width=\"5\" />\r\n     <circle cx=\"200\" cy=\"100\" r=\"50\" stroke=\"black\" stroke-width=\"3\" /> \r\n</svg>"

                );
    }
}

答案 2 :(得分:0)

1将puclic更改为public

2在System.out.println语句的末尾添加一个分号

3如果想要换行,请使用行终止符

class svg {
    public static void main(String[] args){
        System.out.print("<?xml version=\"1.0\" standalone=\"no\"?>\n" + 
            "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"             \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n" + 
            "<svg width=\"12cm\" height=\"12cm\" viewBox=\"0 0 1000 1000\"            xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n" + 
            "<line x1=\"100\" y1=\"100\" x2=\"500\" y2=\"200\" stroke=\"red\" stroke-width=\"5\" />\n" + 
            "<circle cx=\"200\" cy=\"100\" r=\"50\" stroke=\"black\" stroke-width=\"3\" /></svg>");
    }
}

答案 3 :(得分:0)

如果要在多行中编写字符串代码,则需要使用“+”连接符号。或者你可以在一行中编写整个代码。

  class svg{
public static void main(String[] args){
    System.out.print("" +
            "            <?xml version=\"1.0\" standalone=\"no\"?>" +
            "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" " +
                "\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">" +
                "<svg width=\"12cm\" height=\"12cm\" viewBox=\"0 0 1000 1000\"" +
                "xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">" +
                "<line x1=\"100\" y1=\"100\" x2=\"500\" y2=\"200\" stroke=\"red\" stroke-width=\"5\" />" +
                "<circle cx=\"200\" cy=\"100\" r=\"50\" stroke=\"black\" stroke-width=\"3\" /> " +
                "</svg>");
}
}

上面的代码会将整个字符串打印在一行中。如果你想要添加到不同的行,你可以为每一行使用不同的print语句或在字符串中添加\ n。