Você pode querer dar uma olhada em wkhtmltopdf . É um conversor de HTML para PDF com base no mecanismo HTML webkit que serve de base ao Safari e à maioria dos outros aplicativos do OS X que exibem HTML, bem como o Google Chrome navegador entre outras aplicações. É construído para ser um utilitário baseado em linha de comando e deve ser fácil o suficiente para ajustar e recompilar, dada a capacidade de criar aplicativos baseados no framework Qt.
Não me lembro exatamente o que acontece com links na página, mas ele faz um trabalho decente de converter o texto, incluindo a formatação CSS, em um PDF muito bonito.
E é grátis ...
Editar: Além disso, uma cópia completa do Acrobat tem essa capacidade desde pelo menos o Acrobat 3 ou 4 (ou seja, há muito tempo). No entanto, você precisa comprar o Acrobat completo, porque o Reader não tem o recurso. Suporta dois modos de conversão: automático e ad-hoc. O modo automático percorre o URL fornecido e recupera tudo o que pode alcançar a partir daí. Como isso poderia envolver a recuperação de toda a Web, ele controla o número de saltos permitido para a página original. O modo ad-hoc permite que você navegue de uma página para outra e, ao clicar em links, ele recupera a página, adiciona-a ao crescente documento PDF e reescreve os links para se referir ao arquivo PDF em vez da Web.
A criação de PDFs do Acrobat geralmente é a melhor da exibição, exceto neste caso. Ele realmente não manipula o suficiente da especificação CSS para fazer as coisas funcionarem corretamente. Eu sempre tive os melhores resultados, definindo o layout da página para paisagem, mas mesmo assim, é desajeitado.
Editar 2: Eu removi o Opera da lista de usuários do webkit e adicionei um link para a página do projeto do webkit. Obrigado a Dan Walker pela correção.