Em primeiro lugar, é preciso compreender o que é um PDF. Os PDFs são concebidos para imitar uma página impressa, e são concebidos apenas como um formato de saída, não como um formato de entrada. um PDF é basicamente um mapa contendo a localização exacta dos caracteres (letras individuais ou pontuação, etc.) ou imagens. Na maioria dos casos, um PDF não armazena sequer informação sobre onde uma _palavra termina e outra começa, muito menos coisas como pausas suaves vs. pausas duras para terminar parágrafos.
(Alguns PDFs recentes armazenam alguma informação sobre este material, mas isso é uma nova tecnologia, e você teria sorte em encontrar PDFs como este. Mesmo que o fizesse, o seu visualizador de PDFs poderia não saber)
De qualquer forma, cabe ao seu software implementar algum tipo de “inteligência artificial” para extrair apenas da localização de caracteres individuais o que é uma palavra, o que é um parágrafo, e assim por diante. Um software diferente vai fazer isto melhor do que outros, e também vai depender de como o PDF foi feito. Em qualquer caso, deve nunca esperar resultados perfeitos. Ter o PDF de saída não é o mesmo que ter o documento de origem. Muito melhor tentar obter 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 para HTML. Mesmo isso não vai obter resultados perfeitos.
Há um software gratuito que pode ser usado para extrair texto de PDFs com alguma formatação intacta, mas mais uma vez, não espere resultados perfeitos. Veja, por exemplo, calibre (que pode converter para o formato RTF), pdftohtml/pdfreflow ou o AbiWord word processor (com todos os plugins de importação/exportação habilitados). Existe também um plugin de importação PDF para OpenOffice.
Mas por favor não espere perfeição com nenhum destes resultados. Está a ir contra o grão aqui. O PDF não pretende ser um formato de entrada editável.