Extrair texto de um pdf com PDFBox sem perder as quebras de linhas

1 resposta Resolvido
java
H

Boa noite pessoal.

Estou usando o PDFBox para extrair textos de PDFs, porém, ele está omitido as quebras de linhas que estão entre os parágrafos.
A figura abaixo ilustra um exemplo:

.

Alguém saberia uma forma de extrair o texto sem ignorar as quebras de linha?

1 Resposta

H
Solucao aceita

Boa noite, Helciodasilva!

A solução depende de como o documento original está sendo formatado:

Se for um documento do Word e a configuração de parágrafo estiver definida para inserir espaçamentos após o parágrafo, na verdade, não existe linha em branco!

Tela de configuração do Word:

Sem configuração de espaçamento:

Não 

Me

Ignore

Com configuração de espaçamento:

Não 

Me

Ignore

Código de Teste:

package org.teste;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFTextStripper;

public class TesteLinhasEmBranco {

	public static void main(String[] args) {
		String contents = "";
		PDDocument doc = null;
		try {

			doc = PDDocument.load("nao.pdf");

			PDFTextStripper stripper = new PDFTextStripper();
			stripper.setLineSeparator("\n");
			stripper.setStartPage(1);
			stripper.setEndPage(1);
			contents = stripper.getText(doc);

			String[] linhas = contents.split("\\r?\\n");
			for (int i = 0; i < linhas.length; i++) {
				System.out.println(String.format("%d: %s", i + 1, linhas[i]));
			}

			doc.close();

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Saída da primeira configuração:

1: Não  
2:  
3: Me 
4:  
5: Ignore

Saída da segunda configuração:

1: Não  
2: Me 
3: Ignore

Abcs!

Criado 14 de março de 2016
Ultima resposta 14 de mar. de 2016
Respostas 1
Participantes 2