Se file contiver foo.pdf , você poderá remover o .pdf usando ${file%%.pdf} .
Com szSavePath , você pode testar se ele contém .txt e adicioná-lo se não tiver:
szSavePath=$(zenity --file-selection --save --confirm-overwrite)
[[ $szSavePath != *.txt ]] && szSavePath="$szSavePath.txt"
Você pode fornecer o nome de arquivo do PDF com .txt em vez de .pdf como nome de arquivo padrão, usando a opção --filename :
szSavePath=$(zenity --file-selection --save --confirm-overwrite --filename="${file%%.pdf}.txt")
Além disso, lembre-se de citar suas variáveis, para que nomes de arquivos com espaços e outros caracteres especiais não causem problemas:
pdftotext "$file" "$szSavePath"