grunt-svg2png icon indicating copy to clipboard operation
grunt-svg2png copied to clipboard

Output is SVG source on Windows

Open bryanburgers opened this issue 11 years ago • 4 comments

On Windows 7, the output is not the image, but an image of the source code for the SVG.

This only occurs if the SVG does not have an XML declaration. If I add <?xml version="1.0"?> to the document, it will work correctly.

division-corner

SVG Source:

<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25"><path d="M1 0l24 24v-24z" fill="#fff"/><path d="M0 1l24 24h1v-5l-20-20h-5z" fill="#cc092f"/></svg>

bryanburgers avatar Feb 28 '14 14:02 bryanburgers

Has anyone found a workaround for this?

deantpt avatar Apr 01 '15 21:04 deantpt

Not sure if you are using 'svgmin' but I found 'svgmin' was messing it up for me. If i move it after 'svg2png' in my Gruntfile.js in grunt.registerTask(), then it generates the png properly, didn't need the xml declaration either.

smyli323 avatar Jul 29 '15 23:07 smyli323

Another workaround for you need to run svgmin before svg2png (as if you are using grunticon), you can simply disable the removal of the xml declaration in svgmin:

svgmin: {
    dist: {
        options: {
            plugins: [
                { removeXMLProcInst: false } // don't remove xml processing instructions (doing so causes svg2png to fail at least on win 7)
            ]
        },
        files: [{
            expand: true,   cwd: 'sourcedir', src: ['*.svg'], dest: 'destdir'
        }]
    }
}

Of course, ideally, svg2min could support files without the xml declaration.

jtbr avatar Sep 01 '15 15:09 jtbr

Worth mentioning... the latest version of Illustrator (I'm on v19.2.0) has a new 'Export... SVG' dialog which seems to automatically strip the declaration.

grunt-svg2png still needs this declaration in order to output a rasterized SVG graphic (rather than rasterized lines of XML code).

Grrrrr.

jonnystening avatar Jan 07 '16 00:01 jonnystening