Escrito em March 18th, 2009 as 1:18 pm por

7 Comentários

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

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

Posts Relacionados:

  1. Lendo um Arquivo Pdf com iTextSharp – Parte I
  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 VI (Marca D´água)
  5. Criando um documento Pdf com iTextSharp – Parte III (Rotacionar Folha)
  6. Criando um documento Pdf com iTextSharp – Parte V (MetaDados)
  7. Criando um documento Pdf com iTextSharp – Parte IV (Tamanho da Página)
, , ,

7 Respostas to “Lendo um Arquivo Pdf com iTextSharp – Parte II”


  1. 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 ?


  2. 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…


  3. 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


  4. 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!


  5. 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


  6. 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


  7. 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

Deixa uma Resposta

znjdb32s6g