Passengers were evacuated from the station following the incident, which occurred about 11.30pm on Friday.
The 25-year-old man was taken the Royal Alexandra Hospital in Paisley.
He suffered lacerations to his body and broken bones from the impact of the fall.
He plummeted through a section of the glass roof to the left-hand side of the station after falling from the adjoining luxury Grasshoppers hotel on Union Street.
A police spokesman said: "A 25-year-old man has been charged with a public order offence in connection to the incident and a report has been submitted to the procurator-fiscal."
A spokesman for Network Rail said the roof had been repaired.