Io ci ho sbattuto la testa per una settimana. Librerie opensource ce ne sono una decina, vari porting da SUN, ma non ho trovato nessuna che avesse una qualità soddisfacente nel risultato. A volte si perdono pezzi di testo o immagini nel rendering e il tempo di lettura cresce al crescere delle dimensioni del pdf.
Secondo me, la soluzione migliore, è scrivere una procedura per rilevare un qualsiasi lettore di pdf già installato e attivare il primo trovato.