Eu virei o google de pernas pro ar esses tempos, tentando transformar HTML em pdf. O mais perto é o carinha que fala para passar pelo Apache Fop, mas é um mega empenho achar o XSLT (e eu precisava que fosse dinâmico).
Achei isto aqui: https://xhtmlrenderer.dev.java.net/
Ele renderiza o HTML inclusive para PDF (e funciona bem legal). Para swing e imagem eu não testei. Documentação acessível. Nunca tinha ouvido falar, e mesmo aqui no fórum tem poucas citações a ele.
Suporta CSS 2.1, alguns itens do CSS 3. Page-breaks, header/footer, page size. O único inconveniente é que precisa ser XHTML; mas isso pode ser obtido usando o JTidy.
A partir daí, bom, google é seu amigo 
Usando o xhtmlrenderer: to precisando iserir um rodapé e um cabeçalho na página…como faço ???
Procurei no google por “xhtmlrenderer footer header” e caí nesse tutorial
http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html
Funciona bem. Estou sem acesso ao código que uso.
Obrigado pela ajuda CintiaDR…utilizei a sugestão e consegui obter o html convertido para pdf com cabeçalho e rodapé…
Porém tive que fazer alguns ajustes para a conversão de html para pdf e gerando cabeçalho e rodapé funcionar:
Ao invés de utilizar o exemplo do site http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html, tive que alterar o css para:
@page{
size: letter
@top-center {
content: “This is the header”;
}
@bottom-center {
content: "Page " counter(page) " of " counter(pages);
}
}
Valeu !