Primeiro, lembre-se de que os PDFs são uma linguagem de programação em si. Eu posso desenhar primeiro na parte inferior da página (ou tela), depois no topo e depois sobrepor alguma coisa.
Dito isso, usamos pdftotext para essa tarefa, com algumas massagens após a saída.
Você também pode carregá-lo no Google Docs ou até o LibreOffice possui conversores de PDF.
Todos os 3 são gratuitos, tente o que ajuda mais.