My experience of Box2d (which I use in my game) is that it really isn't good for producing repeatable events; I am guessing there is some randomness built-in (possibly to cater for things like a triangle landing exactly on its point).
Also rounding differences across machines make slight differences,
So - if you apply a force to make your player jump from left to right, in my experience they will end at almost exactly the same location each time - but not exactly the same location.
Let's assume that "very nearly" is close enough to "exactly" for your purposes.
Now - your problem, I think, is that you need to calculate the force magnitude and angle required to send your player the required distance. Maths is your friend..
I am assuming you want the most efficient jump and there is no air resistance.
d = v^2 / g
where d is the distance you want to travel, v is the velocity and g is gravity.
Well you know d and g, so the velocity you want is given by
v = sqrt(d * g)
The angle for the most efficient jump is 45 degrees
the easy thing to do would be to set the velocity to v at 45 degrees, rather than applying the impulse to give that velocity - but the impulse is simply the mass of your body x the velocity - so it should be reasonably easy.