PDF uploads and text extraction