Pergunta

Para um projeto pequeno, tenho que analisar arquivos PDF e pegar uma parte específica deles (uma simples cadeia de caracteres).Gostaria de usar python para fazer isso e encontrei várias bibliotecas que são capazes de fazer o que desejo de algumas maneiras.

Mas agora depois de algumas pesquisas, estou me perguntando qual é a estrutura real de um arquivo pdf, alguém sabe se existe uma especificação ou alguma explicação em algum lugar online?Encontrei um link no Adobe, mas parece que é um link morto :(

Foi útil?

Solução

Aqui está um link para o material de referência da Adobe

http://www.adobe.com/devnet/pdf/pdf_reference.html

Você deve saber que o PDF é apenas sobre apresentação, não estrutura. A análise não será fácil.

Outras dicas

Quando comecei a trabalhar com PDF, encontrei o Referência em PDF Muito difícil de navegar. Pode ajudá -lo a saber que a visão geral da estrutura do arquivo é encontrada na sintaxe e o que o Adobe chama de estrutura do documento é a estrutura do objeto e não a estrutura do arquivo. Isso também é encontrado na sintaxe. A descrição dos operadores está escondida no Apêndice A - muito útil para entender o que está acontecendo nos fluxos de conteúdo. Se você tiver a dor de trabalhar com espaços de cores, encontrará isso oculto em gráficos! Espero que esses ponteiros o ajudem a encontrar as coisas mais rapidamente do que eu.

Se você estiver usando o Windows, pdftron Cosedit Permite navegar na estrutura do objeto para entendê -la. Há uma demonstração gratuita disponível que permite examinar o arquivo, mas não salvá -lo.

Eu encontrei o GNU Introdução ao PDF ser útil para entender a estrutura. Inclui um facilmente legível Exemplo de arquivo PDF que eles descrevem em detalhes completos.

Outros links úteis:

Aqui está o cru Referência de PDF 1.7, e aqui está um artigo descrevendo a estrutura de um pdf Arquivo. Se você usa vim, o plugin pdftk é uma boa maneira de explorar o documento de uma forma cada vez maior pdftk A própria utilidade (e sua fonte GPL) é uma ótima maneira de separar os documentos.

Estou tentando fazer praticamente a mesma coisa. A referência em PDF é um documento muito difícil de ler. Este tutorial é um começo melhor, eu acho.

Isso pode ajudar a esclarecer um pouco:(da página 11 do PDF32000.book)

A sintaxe do PDF é melhor compreendida considerando-a como quatro partes, conforme mostrado na Figura 1:

• Objetos.Um documento PDF é uma estrutura de dados composta por um pequeno conjunto de tipos básicos de objetos de dados.A subcláusula 7.2, "Convenções lexicais", descreve o conjunto de caracteres usado para escrever objetos e outros elementos sintáticos.A subseção 7.3, "Objetos", descreve a sintaxe e as propriedades essenciais dos objetos.A subcláusula 7.3.8, "Objetos de fluxo", fornece detalhes completos do tipo de dados mais complexo, o fluxo objeto.

• Estrutura de arquivos.A estrutura do arquivo PDF determina como os objetos são armazenados em um arquivo PDF, como eles são acessados e como são atualizados.Esta estrutura é independente da semântica dos objetos.Sub- cláusula 7.5, "Estrutura de arquivos", descreve a estrutura do arquivo.A subcláusula 7.6, "Criptografia", descreve um nível de arquivo mecanismo para proteger o conteúdo de um documento contra acesso não autorizado.

• Estrutura do documento.A estrutura do documento PDF especifica como os tipos básicos de objeto são usados ​​para representar componentes de um documento PDF:páginas, fontes, anotações e assim por diante.A subcláusula 7.7, "Estrutura do documento", descreve a estrutura geral do documento;As cláusulas posteriores abordam a semântica detalhada dos componentes.

• Fluxos de conteúdo.Um fluxo de conteúdo PDF contém uma sequência de instruções descrevendo a aparência de uma página ou outra entidade gráfica.Essas instruções, embora também representadas como objetos, são conceitualmente diferente dos objetos que representam a estrutura do documento e são descritos separadamente.Subcláusula 7.8, "Content Streams and Resources", discute os fluxos de conteúdo PDF e seus recursos associados.

Parece que navegar em um arquivo PDF exigirá um pouco mais do que um esforço passageiro.

Se você quiser analisar o PDF usando Python, dê uma olhada Pdfminer. Esta é a melhor biblioteca para analisar arquivos PDF até a data.

Didier tem uma ferramenta para analisar o PDF:

http://didierstevens.com/files/software/pdf-parser_V0_4_3.zip

ou aqui:

http://blog.didierstevens.com/programs/pdf-tools/ que catalogou várias ferramentas de análise de PDF relacionadas.

Outra ferramenta está aqui:

link

Extrair texto de PDF é um problema difícil porque o PDF tem uma estrutura orientada para layout.Você pode ver o documentos e código fonte da minha tentativa mal sucedida no CPAN (minha implementação está em Perl).A estrutura de dados do PDF é muito legal e bem desenhada, mas é mais fácil de escrever do que ler.

Uma maneira de obter algumas pistas é criar um arquivo PDF composto por uma página em branco.Eu tenho o CutePDF Writer no meu computador e criei um documento Wordpad em branco de uma página.Imprimiu em um arquivo .pdf e depois abriu o arquivo .pdf usando o Bloco de Notas.

A seguir, utilize uma cópia deste arquivo e elimine linhas ou blocos de texto que possam ser de seu interesse, depois recarregue no Acrobat Reader.Você ficaria surpreso com a pouca informação necessária para criar um documento PDF funcional de uma página.

Estou tentando criar uma planilha para criar um formulário PDF a partir do código.

Você precisa do manual de referência em PDF para começar a ler sobre os detalhes e a estrutura dos arquivos PDF.Sugiro começar com a versão 1.7.

No Windows usei uma ferramenta gratuita Analisador de PDF para ver a estrutura interna dos arquivos PDF.Isso ajudará na sua compreensão ao ler o manual de referência.

enter image description here

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top