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.
Posts Relacionados:
- Lendo um Arquivo Pdf com iTextSharp – Parte II
- Criando um documento Pdf com iTextSharp – Parte II
- Criando um documento pdf com iTextSharp – Parte I
- Criando um documento Pdf com iTextSharp – Parte III
- Criando um documento Pdf com iTextSharp – Parte V
- Criando um documento Pdf com iTextSharp – Parte VI
- Criando um documento Pdf com iTextSharp – Parte IV



April 18th, 2009 at 5:08 PM
[...] 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, [...]