Charset no PDFBox

5 respostas
Deleon_Pereira

Olá pessoal,

Estou com um problema ao extrair o texto de um pdf utilizando a biblioteca do PDFBox. Bom, quando extraio o texto, os caracteres que contém acentos, ç, etc…vem desconfigurado como o exemplo abaixo:

Notifica ªo 207, onde deveria ser: Notificação 207
ou
Trabalho da 5? REGI?O, onde deveria ser: Trabalho da 5ª REGIÃO

Achei um modo de aplicar o UTF8 na classe PDFontDescriptorDictionary:

PDFontDescriptorDictionary font = new PDFontDescriptorDictionary();
font.setCharacterSet(“UTF8”);

Porém, não sei se é ela que devo utilizar. Alguém sabe com resolver isto?

5 Respostas

E

tbm estou com este mesmo problema …

alguem tem a solução ???

vlwwwwwwwwwwwww

E

e ai Deleon Pereira blz???

eu estava dando uma olhada e parece que tem que usar uma fonte que aceita caracteres especiais…
mas ainda não consegui fazerr não…
e ai alguma novidade???

Deleon_Pereira

Olá edward.juniorr,

Eu consegui resolver, parece que o problema era no arquivo pdf mesmo. O que eu fiz foi reecria-lo utilizando o pdfCreator, como se fosse imprimir o pdf novamente, só que com o pdfCreator. Depois de recriado (com o pdfCreator) funcionou direitinho.
Utilizei o iText para extrair o texto, veja:

Porém, está foi um paliativo, ou seja, o problema ainda persiste, sendo que está no próprio arquivo.

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;

import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfReaderContentParser;
import com.itextpdf.text.pdf.parser.SimpleTextExtractionStrategy;
import com.itextpdf.text.pdf.parser.TextExtractionStrategy;

private String arquivo = "C:/meuPdf.pdf";

public static String getConteudo(String arquivo) throws Exception {
		
      PdfReader reader = new PdfReader(arquivo);
      PdfReaderContentParser parser = new PdfReaderContentParser(reader);
      TextExtractionStrategy strategy;
      StringBuilder texto = new StringBuilder();
      
      for (int i = 1; i <= reader.getNumberOfPages(); i++) {
          strategy = parser.processContent(i, new SimpleTextExtractionStrategy());
          texto.append(strategy.getResultantText());
      }
      
      return texto;

}

Espero ajudar.

E

é verdade com iText funciona certinho… mas aqui não consegui usar itext pq na hora que faz o deploy no servidor lixux ele não consegue converter a página do meu pdf em imagem… por isso tive que usar pdfbox… eu converto as páginas em pdf para imagem … e ele estava convertendo errado … os caracteres especiais não funcionavam…

agora consegui resolver usando a versão antiga do pdfbox(1.2)… vi no site da apache que a versão 1.3 está com problema nos caracters especiais…
fiz dowload da versão 1.2 e funcionaou corretamente;…

vai entender rsrsrsrsr a versão antiga é melhor kakakak

flwww

Deleon_Pereira

edward.juniorr,

Valeu pela dica, realmente funcionou direitinho com a versão 1.2 do PDFBox, estou utilizando ela agora e não tive mais problemas com acentos e outros caracteres.

Abraço…

Criado 10 de dezembro de 2010
Ultima resposta 14 de dez. de 2010
Respostas 5
Participantes 2