Escrito em March 11th, 2009 as 10:20 am por

3 Comentários

Bom pessoal, sei que não fui muito explícitio em meu primeiro post e acho até que deixei a coisa mais complicada do que parece e na verdade acabei por não falar praticamente nada sobre o iTextSharp e só sobre o documento pdf em si.

Desde domingo estou tentando criar uma aplicação simples pra extrair só o texto do arquivo binário do pdf, mas a falta de tempo tá pegando. Utilizando o iTextSharp, realmente fica muito fácil extrairmos informações do arquivo pdf. Como a maioria (99,99%) dos posts que vejo por aí são sobre como criar pdfs eu irei na contramão disso tudo e irei começar uma série de posts que mostrarão como extrair os dados de um pdf.
Depois de baixar o iTextSharp e fazer refência a ele no projeto, utilizaremos o namespace iTextSharp.text.pdf.

using iTextSharp.text.pdf;
...
...
...
//Carrega o arquivo desejado.
//onde arquivo é o nome do arquivo que desejamos ler.
PdfReader reader = new PdfReader(arquivo);
//Lê a página desejada.
//onde Pagina é o número da página que desejamos ler.
byte[] input = reader.GetPageContent(int.Parse(Pagina));
//Varre a página e converte em texto
//onde texto é uma variável do tipo string que conterá todo o conteúdo do arquivo.
for (int i = 0; i < arq.Length; i++)
                {
                    char c = (char) arq[i];
                    texto += c.ToString();
                }

Transformar o conteúdo do arquivo em texto nos auxiliará entender o arquivo com mais clareza.
Fácil não? É ler o arquivo é fácil, quero ver quando você se deparar com o texto que ele apresentará. hehehe
É meu amigo…, eu quebrei muito a cabeça pra começar a entender algumas notações do pdf. Por isso que no post anterior eu acabei falando só do Glyph.
Pra você que deseja apenas extrair o texto puro aqui vai uma dica importante; pra você que deseja extrair o texto cheio de estilos e tudo mais é apartir deste ponto que começaremos também, e como são muitas notações peço a você que tenha um pouco de calma, pois irei postando o significado de cada uma delas aos poucos. E lá vai a dica:
a notação BT (Begin Text) siginifica Início do objeto texto e a notação ET (End Text) significa Fim do objeto texto. Legal, agora já sabemos que o que realmente queremos ler está entre estas duas notações. Vale lembrar que elas aparecem diversas vezes dentro do documento; geralmente isso ocorre pois há alguma imagem ou objeto de outro tipo entre o texto.
Agora você vai criar um método que extrai só o que está entre o início e o fim do objeto texto e mesmo assim você verá algumas notações. Aí você vai querer me matar, mas eu provavelmente perderei já que o meu treinamento Jedi com meu mestre O Bill one “completo ainda não está”.
Aqui vai a segunda dica, o texto propriamente dito é apenas o que está dentro dos parenteses “()“, então você deve concatenar tudo o que está dentro dos parênteses, mas cuidado pois o parentese também pode estar incluído no texto. hehehehe Já fundiu a mufa aí? Não?… então beleza, seguinte, quando ele quiser que um parentese seja lido como texto ele coloca uma barra “” antes do dito cujo.
Acredito que isso já basta pra quem deseja extrair simplismente o texto de dentro do pdf, sem estilos e nada mais; para quem deseja extrair com estilos e tudo mais, aguarde os próximos posts, pois iremos adentrar neste mundo a partir do próximo post.

um abraço até mais.

Se você gostou do post, deixe um comentário ou assine nosso RSS RSS.

Posts Relacionados:

  1. Lendo um Arquivo Pdf com iTextSharp – Parte II
  2. Criando um documento Pdf com iTextSharp – Parte II
  3. Criando um documento pdf com iTextSharp – Parte I
  4. Criando um documento Pdf com iTextSharp – Parte III (Rotacionar Folha)
  5. Criando um documento Pdf com iTextSharp – Parte VI (Marca D´água)
  6. Criando um documento Pdf com iTextSharp – Parte V (MetaDados)
  7. Criando um documento Pdf com iTextSharp – Parte VIII (Criptografia)
, , ,

3 Respostas to “Lendo um Arquivo Pdf com iTextSharp – Parte I”


  1. Daniel

    1 year ago

    Legal seus artigos, porém não estou conseguindo utilizar isto em uma aplicação que estou tentando criar. Preciso ler um arquivo no formato de pdf e substituir partes do texto exemplo:

    Nome: campo1 CPF: campo2
    Endereço: Campo3 telefone: campo4

    Trocar campo1, campo2, campo3, e campo4 pelos valores do banco, porém não estou conseguindo utilizar o PdfReader. Seria legal se fosse possivel ler o arquivo pdf e subistuir cada macro linha a linha.
    Isso é possovel?

    Desde de já agradeço
    Obrigado


  2. Pablo Roveroni

    10 months ago

    Daniel,

    teoricamente é possível sim.
    Ao abrir o arquivo para leitura você pode procurar o texto por exemplo “Nome:” substituir por “Nome: José da Silva”; para todos os campos.

    abs

1 Trackbacks For This Post

  1. Lendo um Arquivo Pdf com iTextSharp - Parte II | .Net Max Says:

    [...] as fontes contidas no documento. Após lermos o documento da maneira como citei no artigo anterior (Lendo um Arquivo Pdf com iTextSharp – Parte I), a única diferença é que ao invés de extrairmos todo o texto que está dentro dos parênteses, [...]

Deixa uma Resposta

znjdb32s6g