1(* Text Exporter *) 2 3Begin["System`Convert`TextDump`"] 4 5 6SVGExport[filename_, expr_, opts___] := 7 Module[{strm, data, p, q, expr2}, 8 strm = OpenWrite[filename]; 9 If[strm === $Failed, Return[$Failed]]; 10 expr2 = If[Head[expr]=!=System`Graphics, System`Graphics[{System`Inset[ToString[expr]]}], expr]; 11 expr2= MathMLForm[expr2]; 12 data=ToString[expr2]; 13 p = StringPosition[data, "data:image/svg+xml;base64"][[1]][[2]]; 14 (*Let's assume that the end of the string is reached just before the last quote. *) 15 q = StringPosition[data,"\""][[-1]][[-2]]; 16 data = StringTake[data ,{p+2,q-1}]; 17 WriteString[strm, System`Convert`B64Dump`B64Decode[data]]; 18 Close[strm]; 19 ] 20 21ImportExport`RegisterExport[ 22 "SVG", 23 System`Convert`TextDump`SVGExport, 24 FunctionChannels -> {"FileNames"}, 25 Options -> {"ByteOrderMark"}, 26 DefaultElement -> "Plaintext", 27 BinaryFormat -> False 28] 29 30 31End[] 32