Man is charged in southwest Sydney after allegedly punching an off-duty police officer in the face

A 27-year-old man has been charged with more than 20 offences after allegedly assaulting an off-duty police officer in Sydney's southwest.