Peço desculpas pela demora em postar novamente, mas é que esses dias a coisa tá corrida mesmo. Mas vamos ao que interessa.
Se quisermos recriar fielmente um documento pdf em um documento texto, html ou o que quer que seja, trazendo não só o texto, mas o estilo aplicado em cada parte dele, devemos em primeiro lugar criar um dicionário com todas 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, iremos antes disso verificar os estilos de fonte que estão logo depois que o objeto texto é iniciado.
O primeiro passo para criarmos um dicionário será criar uma variável do tipo ArrayList. No exemplo abaixo criamos a variável ArrayList com o nome de dicFontes.
Lembrando apenas que a variável reader é o PdfReader que já fizemos no exemplo anterior.
Como os valores contidos na dicFontes serão arrays de objetos de duas dimensões, será necesário lê-lo. O valor com o nome da fonte será o contido na posição 0 (zero) do deste array.
ArrayList dicFontes = new ArrayList(); //Monta dicionário com as fontes dicFontes = BaseFont.GetDocumentFonts(reader);
Agora reparem bem que o nome de algumas fontes virão como EOODIA+Poetica; isso porque ele é o nome de um subset da fonte Poetica.
Os tipos de fonte e suas características postarei em um novo post mais adiante, pois seria necessário me estender de mais.
Mas fica aqui a dica para quem deseja obter os nomes das fontes utilizadas em um documento pdf.
Até o próximo post.
Pablo Roveroni
Posts Relacionados:
- Lendo um Arquivo Pdf com iTextSharp – Parte I
- Criando um documento Pdf com iTextSharp – Parte II
- Criando um documento pdf com iTextSharp – Parte I
- Criando um documento Pdf com iTextSharp – Parte VI (Marca D´água)
- Criando um documento Pdf com iTextSharp – Parte III (Rotacionar Folha)
- Criando um documento Pdf com iTextSharp – Parte V (MetaDados)
- Criando um documento Pdf com iTextSharp – Parte IV (Tamanho da Página)



7 Respostas to “Lendo um Arquivo Pdf com iTextSharp – Parte II”
Adolfo
1 year ago
Então amigo, meu caso é mais simples. Estou criando um serviço que vai “escutar” uma pasta onde serão jogados arquivos PDF. Esse serviço precisa pegar o arquivo quando ele cair nessa pasta e jogá-lo em uma impressora que irei definir em um .ini ou xml de config. Tens alguma idéia de como fazê-lo ?
Guilherme Bacellar
1 year ago
Hum… Essa é complicada ein.
Escutar a pasta é fácil, mas mandar imprimir já é algo mais complicado.
Tente (talvez) utilizar o próprio adobe reader em seu serviço. Eu sei que é possível abrir PDF’s com ele de forma transparente (escondendo a janela), e tentar enviar um comando para imprimir.
Não sei se dará certo, mas, é por onde eu iria começar a pesquisar.
Abraços…
Priscylla
11 months ago
Estou precisando ler um arquivo pdf e identificar se ele é preto e branco ou colorido.
Já pesquise bastante mas estou tendo dificuldades de encontrar uma solução… =/
Tem alguma sugestão? Sabe se o itextSharp suporta isso?
Abs
Pablo Roveroni
10 months ago
Olá Priscylla,
até onde eu sei, não existe nenhuma definição no arquivo pdf para dizer se é PB. Pois teoricamente preto e branco são cores como azul, amarelo e vermelho.
O que você poderia fazer seria criar uma notação no arquivo, quando for criá-lo para dizer isso.
Espero ter ajudado de alguma forma.
Obrigado!
Solange
9 months ago
Olá;
No meu caso, preciso identificar se um determina palavra dentro do pdf é negrito e o tamanho da fonte. Além disso, preciso reconhecer cada paragrafo dentro do documento pdf. Tens alguma sugestão sobre e=como resolver esse problema?
Abraços
Solange
Pablo Roveroni
6 months ago
Olá Solange!
Infelizmente não tem uma fórmula mágica pra isso.
Você teria que varrer todo o texto e ir verificando no dicionário o estilo em cada ponto.
Se você encontrar uma solução melhor, por favor escreva-nos que teremos um imenso prazer em postar sua solução.
Abs,
Pablo Roveroni
Fred
6 months ago
Eu estou a fazer um projecto (C#) em que preciso de ir ao pdf e retirar certas informações para os campos da form do meu programa de maneira automatizada.
O tema são artigos cientificos e pretende-se que o utilizador abra um pdf de um artigo e o programa preencha os campos do autor, título, resumo, etc…
Pelo que me disseram essas informações são especificadas de forma semelhante em todos os pdf’s do género!
É possível me dar uma ajuda com isto?
Cumprimentos
Fred