Can't you just write it as a Windows service then and use some sort of an asynchronous queue (like a file folder)?
It's slow, and really hard to debug when it's not working (not only pdf output but merge fields).
> Just us a serialized queue using MSMQ. Write the queue listener in Javascript and register with COM+.
Sure, but now you have MSMQ and COM+ to deal with...and debugging/fixing when it breaks (under load), or isn't secured properly.
The smart folks shell out for a copy of Aspose Cells and get the job finished on time.
On more recent projects in last ~12 months, I have used OpenXML.