There are two purposes in measuring piston height out of the block: to compare the pistons to one another (relative), and to determine the right head gasket thickness (absolute).
If you look in the Bentley manual, they show a gizmo for measuing piston height. If you can find one, that's probably the best way. But as I didn't know where to get one, I used two other methods.
Tools
Dial indicator and stand: I bought a cheap dial indicator and magnetic base stand from Harbor Freight. You can find a lot of them on ebay too, better ones no doubt, but I live close to a HF store. It should be able to read in 1000ths of an inch or better, or 100ths of a mm. Also, not a bad idea to calibrate it - use some feeler gauges or something of sufficient and known precision.
Feeler Gauges in a wide range of thicknesses
A micrometer or caliper (digital or otherwise) capable of reading to .01mm or .0005in
Something, ideally precision ground flat stock 3/8 or thicker by about 1 x 4, but more likely, an ordinary square of some sort, something with a good flat edge, as needed in method 1.
Finding TDC
You can use the TDC mark on the flywheel to get pistons 1 and 4 to the top, but for 2 and 3, the dial indicator helps a lot; you position it out over the bore, turn the crank to bring the piston up to approximately tdc. Then, perhaps using the screwdriver in the flywheel teeth method, turn the crank till the needle doesn't go up any more, go a little farther, as soon as the needle starts to go back down, you back up a little. I would suggest you then lift up on the piston with your fingers in the recessed chamber, just to get any additional play out.
Note: if there's excessive carbon build up on the piston tops, might want to clean that off before taking measurements.
Method 1
Suggested to me by both Franko6 and JasonTDI, it's also the simplest to do. Take the square or flat thing and lay it across the top of the piston, overhanging the edges. Insert feeler gauges between it and the block surface and take that measure. Do this at a couple of different angles on each piston. If you find that the distances are not quite the same on either side of the piston, your straightedge may not be that flat, ( you can check it with the caliper / micrometer ) or the piston may be cocked a little.
Method 2
I found this more tedious, but wanted to use two methods and hope for general agreement between them and use differences to get an idea how accurate I was, since we're trying to measure within +/- .001 or less. But if method 1 is good enough for those two gurus, maybe you don't need to worry about this one. Mount the dial indicator in a place where you can zero it on the block, and then swing it out over the high surfaces of the piston. It takes some doing, because you have to not disturb the stand height off the block as you swing it over the piston. So I did it repeatedly, and unless I could get the same measurement 3 times in a row going back and forth from block to piston, I ignored the measurement. Do this in a couple different locations on the piston.
Try to estimate your error in both cases. I don't know of any actual specs for how different the piston heights can be before it indicates a bent rod, but I found mine to be all within .001" of each other and took that to be good enough. Maybe some pros can weigh in on this. I remember in Keith_J's thread he mentioned how far off his was, just don't remember the number right now, but it was more than .001.