Primeiro, você precisa entender o que é um PDF. Os PDFs são projetados para imitar uma página impressa e são projetados apenas como um formato de saída, não como um formato de entrada. um PDF é basicamente um mapa que contém a localização exata de caracteres (letras ou pontuação individuais etc.) ou imagens. Na maioria dos casos , um PDF nem armazena informações sobre onde uma palavra termina e a outra começa, muito menos coisas como pausas suaves vs. pausas duras para terminações de parágrafos.
(Alguns PDFs recentes armazenam algumas informações sobre esse material, mas essa é uma nova tecnologia, e você teria a sorte de encontrar PDFs como esse. Mesmo se o fizesse, seu visualizador de PDF talvez não o saiba.)
De qualquer forma, cabe ao seu software implementar algum tipo de "inteligência artificial" para extrair apenas dos locais dos caracteres individuais o que é uma palavra, o que é um parágrafo e assim por diante. Diferentes softwares farão isso melhor do que outros, e também dependerá de como o PDF foi feito. De qualquer forma, você nunca deve esperar resultados perfeitos. Ter o PDF de saída não é o mesmo que ter o documento de origem. Muito melhor tentar conseguir isso, se puder.
A solução padrão para o seu tipo de problema é usar o Adobe Acrobat Professional (o caro, não o leitor gratuito) para converter o PDF em HTML. Mesmo isso não vai obter resultados perfeitos.
Existe um software gratuito que pode ser usado para extrair texto de PDFs com algumas formatações intactas, mas, novamente, não espere resultados perfeitos. Veja, por exemplo, calibre (que pode ser convertido para o formato RTF), pdftohtml / pdfreflow ou o processador de texto AbiWord (com todos os plugins de importação / exportação ativados). Há também um plug-in de importação de PDF para o OpenOffice.
Mas não espere perfeição com nenhum desses resultados. Você está indo contra a corrente aqui. O PDF simplesmente não é um formato de entrada editável.