(partial answer) Here is a method that finds the lowest x and y numerical point used to create the word, and subtracts all content in the graphic by these values to normalize the first character to {0,0}: TextToOutlines[style_] := Module[{content, xmin, ymin}, content = ImportString[ExportString[style, "PDF"], "TextMode" -> "Outlines"][[1, 1]]; {xmin, ymin} = Min /@ Transpose[ Cases[content[[2, 1, 1, 2]], {_?NumericQ, _}, 2]]; ReplaceAll[ content, {x_?NumericQ, y_?NumericQ} :> {x - xmin, y - ymin}] ] Show[Graphics@ TextToOutlines@ Style["Fubar", FontColor -> RandomColor[], FontFamily -> "Helvetica", FontSize -> #] & /@ {8, 4, 2, 1}, Axes -> True] [![Fubar][1]][1] This falls apart pretty quickly if any of the letters you're using have "feet" though, i.e. Show[Graphics@ TextToOutlines@ Style["Fybar", FontColor -> RandomColor[], FontFamily -> "Helvetica", FontSize -> #] & /@ {8, 4, 2, 1}, Axes -> True] [![fybar][2]][2] If I have time later today maybe I'll try to think of a method that can overcome this. It might be a useful start for someone else trying to tackle the issue, though. [1]: https://i.sstatic.net/5nRDU.png [2]: https://i.sstatic.net/CiRiS.png