no, il problema non è nel foreach!
sposta i contatori fuori dal metodo void printDocument_PrintPage