I'm trying to drive a 7-segment common anode, in the following connection, however there is no output the comes from the ULN2003 at all, its like when it gets a 0 in the input, it gives a tri state output.
The circuit you show will work fine in reality (assuming that you also add the resistors in series with the display to limit the current).
In proteus it doesn't behave as expected, the open collector outputs of ULN2003 are not pulled high through the LED as they are supposed to be, this is a simulation model misbehavior.
The solution you can use it to add pull up resistors (I have used a resistor network) like shown below:
The shown schematic is valid for simulation only, the pullup network is not needed in the real circuit. You also have to add the series resistors to the segment lines which are omitted in proteus to improve the simulation speed.
The ULN2003 is an open-collector driver, it can sink current towards ground but not supply current from Vcc. You will need to use a different display (common anode instead of common cathode) or use a different driver (open-emitter (or sourcing) drivers do exist, but they are not as common as the ULN2004/ULN2803.
Note that if you need to drive just one display, the HC595 can probably handle the current. Aim for a few mA per segment instead of the full 20mA. The difference in brightness will be much less than you'd suspect.