I do conversions like this as part of an app, and I never save to disk - I create the file in memory, and return it directly to the HTTP response as a file download. What stack are you running that makes you save to disk? (Because that also would be a deal-breaker for using this on confidential documents, if you ever allow uploads)