I have been storing PDFs in Postgres for several years without any problems. Documents range in size from a few pages to 100+ pages. I'm using a bytea column, not large objects. I store the documents in a separate database from the rest of the application data in order to make it easy to exclude in database dumps or backup in some other way. I'm currently managing about 600,000 documents.
John,
This is really good information. Rather than using a separate database I think that storing all PDFs in a separate table makes sense for my application. Backup practices will be the domain of those using the application (which I've decided to open-source and give away because I'm not in the software business). A simple join to the appropriate data table will make them available.
Not having used the bytea data type before I'll read how to work with it.
Assuming relatively small files, bytea makes much more sense than a large object. However note that encoding and decoding can be relatively memory intensive depending on your environment. This is not a problem with small files and I would typically start to worry when you get into the hundreds of mb in size. At least in Perl, I expect decoding to take about 8x the size of the final file in RAM.
LOBs work best when you need a streaming interface (seek and friends) while bytea's are otherwise much more pleasant to work with.