Yes, It is the best way to do same. But I would go with 5 to 7 image available as different symbol representation and show specific image for concerned symbol.
This would save considerable amount of effort, but it is not the best solution.
Parsing the symbol is painful, but what you can do is:
Create your own plotter driver
open a symbol in a tmp drawing
use you plotter driver and render your symbol
A plotter driver is not that complicated, you have only to bind a couple of primitives, like text, lines, arcs... If you have something like a canvas to draw in PTC‘s GUI you can bind the driver function to draw your symbols. You may have an Bounding Box issue, but this should be solvable 🙃