I use an air hammer or chisel if you like
An Allan headed cap bolt goes into the end of the crank to protect the crank
Then some leverage is applied to the crankshaft.
If the engine is out then the engine gets turned upside down and supported by the pulley while I hammer on the end of the crank
If the engine is in the frame then the pulley is wedged to put a pulling load on it and again I lay into it with the air hammer.
The wedging can be tyre irons, machine jacks wrecking bars or tree felling wedges .
When using the air hammer you press as hard as you can on the hammer then hit the trigger.
The 20,000 + tiny whacks from the pistons jerk the pulley off by pushing the crank back.
Now the crank only has about .030" end float which is why you use the wedges and as the pulley moves you continually put more weight on the pulley .
In the early days stack pulleys were cast iron so you could pull on them quite hard.
Now days they are thin steel so if you put any force on the pulley wheels you will bend them beyond use .
Thus you have to use some thing that bears against the pulley shaft which is why I first suggested using a wrecking bar.
Ball joint splitters will also work, but their angle is a bit on the steep side unless you bu a really good ( expensive ) one.
And take heed of your agony right now so when replacing the pulley polish the crankshaft then apply liberal amounts of anti sieze ( not grease )