Tem alguma classe que transforme html em xml, ou html direto para pdf?
procure neste fórum por FOP que é um projeto da Apache que transforma um documento XSL-FO em PDF.
Você pode gerar dinamicamente o XSL-FO usando o Velocity e mandando o FOP transformar em PDF. (Para mim foi a solução para impressão em JAVA)
No endereço oficial você encontra muita coisa:
xml.apache.org/fop