Hi,
You should forget the notion that an image file has a PPI, it doesn't, an image file is physically dimensionless, it's just a collection of pixels. All it has is a placeholder for an output instruction, a PPI tag, but it has no meaning until the image is actually converted to a physical output size.
Output on the other hand can have a PPI, it has physical dimensions, a number of Pixels Per unit length (e.g. Inch).
A file has pixels, and those pixels will be spread over the physical output size. Interpolation (resampling) can change the number of pixels that are used to spread over the physical output size.
Printers deliver better quality when they are presented with the correct number of pixels per unit length, and those numbers are usually fixed per model. So, if for a desired output size the number of image pixels is not adequate (e.g. less than 300 or 360 per inch), new pixels/samples will need to be created/interpolated. Some programs do a better job of creating those new pixels, e.g. Perfect Resize. So you need to set both the required output size, and the required number of pixels per inch, for the program to create the correct number of pixels.
Cheers,
Bart