iText is a library (a jarfile) that provides you with methods for doing this. It is not a "software that does this work". But, if you want to reinvent the wheel, then please, go ahead, just don't expect anyone else to do it for you. You are going to have to inspect the actual format of PDFs (in all the varying versions) and learn how to read and manipulate them yourself. Or, you could simply download and use an API.
It worries me that you thought an API was "an application that will do what you want"... It raises the question should you be programming this in the first place? I get the impression you lack the basic know-how of Java