Classical coding theory contains several techniques to obtain new codes from other codes, including puncturing and shortening. Both of these techniques have been generalized to quantum codes. Restricting to stabilizer codes, this paper introduces more freedom in the choice of the encoded states after puncturing. Furthermore, we also give an explicit description of the stabilizers for the punctured code. The additional freedom in the procedure also opens up for new ways to construct new codes from old, and we present several ways to utilize this in the search for codes with good or even optimal parameters. In particular, we use the construction to obtain codes whose parameters exceed the best previously known and which are better than what general puncturing guarantees. Lastly, the freedom in our puncture procedure allowed us to generalize the proof of the Griesmer bound from the classical setting to stabilizer codes for qudits of prime dimension since the proof relies heavily on the puncturing technique.