You would definitely need to add 1 to count each time you make the recursive call not just when its child nodes are null. Also you may want to do some error checking for instance if the tree you send your method is empty. Also print the node each time in the if statement the way you have it now it will only print the nodes at the bottom.
size++;
size += printAndCountLeaves(left) + printAndCountLeaves(right);