Tenta mexer nas configurações da página, aumentando a margem e diminuindo o espaço útil. Aí, na tentativa e erro, vai testando até que fiquem 20 por página…
Pelo que eu entendi, a paginação tá funcionando normal né?
Por exemplo, se você tem, no HashMap 160 itens, eles são dividídos (suposição) em 4 páginas com 40 itens cada… mas você quer 20, certo?
Não sei se é válido para a sua aplicação mas uma coisa interessante que já utilizei:
Pra exibição do relatório na tela, eu marcava o parâmetro IGNORE_PAGINATION como true e na tela apareciam, usando o exemplo dado, 160 itens na mesma página. Na hora de imprimir, eu gerava novamente o relatório, marcando o parâmetro citado como false e imprimia normal, em 4 folhas com 4 itens. É um “estilo” interessante e o cliente ficou satisfeito…