O que um PDF diz sobre si: ler e apagar os seus metadados
Publicado a 13/08/2026 · 16 min de leitura · Ferramentas de ficheiros
Daniel Okonkwo — Programador front-end e redator de Tecnologia na Allin
Desempenho web · Formatos de ficheiro
Verificado a partir de 4 fontes
Um PDF guarda a sua informação descritiva em dois lugares independentes. O dicionário Info é o antigo: Título, Autor, Assunto, Palavras-chave, Criador, Produtor, data de criação e data de modificação, sob a forma de umas quantas entradas simples. O pacote XMP é o mais recente: um bloco XML, incorporado no ficheiro, que pode conter os mesmos campos outra vez — e muito mais. Nada os mantém sincronizados, pelo que um documento editado por um programa e exportado por outro diz habitualmente duas coisas diferentes sobre si próprio. Esta ferramenta lê o dicionário Info e deixa-o alterar ou esvaziar cada um dos seus campos, e agora lê ao lado o pacote XMP: os oito campos que os dois depósitos partilham, mostrados só para leitura, com cada valor que contradiz o formulário assinalado como divergente. Foi testado com um ficheiro cujo dicionário Info dava um título inócuo e um autor, enquanto o seu XMP dava um título confidencial, outro autor e outro programa de escrita: o painel mostra os dois e assinala os oito. Esvaziar os campos à mão continua a deixar inteiro o bloco XMP, mas o painel já não deixa isso passar em silêncio: cada equivalente que fica no pacote acende-se, e um aviso diz que guardar o mantém. O botão «Esvaziar todos os campos» marca por si a caixa do XMP, e essa combinação apagou de facto os dois — os bytes do pacote desapareceram do ficheiro, e não só a sua referência. Duas coisas sobrevivem aconteça o que acontecer. O par de identificadores do documento, no fecho do ficheiro, atravessou um apagamento completo idêntico byte a byte; nunca é mostrado nem oferecido. E a reescrita não recolhe o lixo: um ficheiro cuja página tinha sido substituída por uma atualização incremental voltou a mostrar a substituição, com metade do tamanho — e o original suplantado continuava presente como objeto, e recuperável. Apagar metadados não é rasurar.
Um PDF transporta os seus metadados duas vezes, em dois depósitos que podem contar histórias diferentes, e nenhum deles é a história toda. Eis o que está realmente no ficheiro, o que a limpeza retira e as duas coisas que sobrevivem a qualquer apagamento.
Um PDF transporta os seus metadados duas vezes
O primeiro depósito é o dicionário Info, e é tão simples quanto parece: um pequeno conjunto de entradas com nome, situado perto do fim do ficheiro. Título, Autor, Assunto, Palavras-chave, Criador, Produtor, data de criação, data de modificação. É praticamente tudo, existe desde as primeiríssimas versões do formato, e é o que quase todos os painéis de «propriedades do documento» lhe mostram.
O segundo depósito é um pacote XMP: um documento XML, envolto em RDF, incorporado dentro do PDF como um objeto próprio. Repete a maioria das mesmas ideias com outros nomes — o título passa a dc:title, o autor a dc:creator, o programa de escrita a xmp:CreatorTool — e pode transportar muito mais do que o dicionário Info sabe alojar: declarações de direitos, históricos de revisão, dados de câmara e de cor, campos à medida que um fluxo editorial inventou. O XMP é uma especificação por direito próprio, publicada em separado do formato PDF e usada também em ficheiros de imagem e vídeo.
Nada no formato obriga os dois a concordar. Um documento escrito num processador de texto, paginado num programa de design e exportado por um destilador pode ter apanhado o seu dicionário Info numa etapa e o seu XMP noutra. Mude o nome ao ficheiro, edite as propriedades numa aplicação, guarde-o a partir de uma segunda, e os dois depósitos afastam-se. Não é uma falha exótica — é a condição comum de um documento que passou por mais de um programa, ou seja, quase todos.
O que o painel lhe mostra, nos dois depósitos
A ferramenta lê o dicionário Info e coloca à sua frente os oito campos como entradas editáveis. Por baixo, lê o pacote XMP e enumera as mesmas oito ideias sob os seus nomes XMP — dc:title, dc:creator, dc:description, dc:subject, xmp:CreatorTool, pdf:Producer, xmp:CreateDate, xmp:ModifyDate — só para leitura, ao lado das caixas com que é suposto concordarem. Só para leitura porque o pacote é o XML de outra pessoa: é mantido inteiro ou removido inteiro. O que o painel continua a guardar para si é tudo o que excede esses oito campos: menções de direitos, históricos de revisão, campos que uma cadeia de publicação inventou para si. Um pacote que não traz nenhum dos oito diz exatamente isso: presente, sem nada que este painel possa alinhar com um campo.
O ficheiro de teste construído para tornar isso visível tinha um dicionário Info que chamava ao documento dossiê de conselho de rotina e nomeava um autor, e um pacote XMP que lhe chamava revisão salarial confidencial que não devia circular, nomeava um autor completamente diferente e apontava também outro programa de escrita. Ao carregá-lo agora, o painel mostra os dois: o dossiê de rotina no campo editável, a revisão salarial logo por baixo, as oito linhas XMP assinaladas como divergentes e, por cima, uma linha a dizer que os dois depósitos não coincidem. A versão que teria saído sem ser vista é a que agora aparece destacada no ecrã.
O resto do painel é invulgarmente cuidadoso, e merece crédito. Um campo vazio é retirado do ficheiro em vez de escrito como cadeia vazia, pelo que um título apagado dá um documento sem título, e não um documento cujo título está em branco — uma distinção que importa, porque os leitores mostram os dois de forma diferente. Uma data que não tocou fica exatamente como estava em vez de ser reescrita ao minuto. E guardar não volta a carimbar o documento: alterar um campo e guardar deixou o Produtor, a data de criação e a de modificação idênticos byte a byte. A maioria das ferramentas que tocam num PDF escreve o seu próprio nome no campo Produtor e põe a data de modificação em agora, o que numa ferramenta de metadados equivaleria a acrescentar uma impressão digital enquanto se diz que se remove uma.
Apagar um depósito não apaga o outro
Testaram-se duas formas de apagar sobre o mesmo ficheiro, e dão resultados diferentes. Esvaziar cada campo à mão e guardar retirou por completo as entradas do dicionário Info — as oito voltaram vazias. O pacote XMP ficou intacto: o ficheiro continuava a transportar o seu bloco XML, continuava a nomear o título confidencial, continuava a nomear o outro autor, continuava a nomear o outro programa de escrita. Quem abrisse o resultado numa ferramenta que lê XMP encontraria tudo o que a pessoa julgava ter removido. O painel di-lo agora antes de guardar: com os campos Info vazios, cada linha XMP que ainda traz um valor fica assinalada como divergente, sob um aviso a dizer que guardar a mantém.
O botão «Esvaziar todos os campos» comporta-se de outra forma, e melhor: esvazia o formulário e marca por si a caixa «Remover também o bloco XMP». Guardar depois disso produziu um ficheiro sem entradas Info e sem qualquer XMP — o título confidencial, o segundo autor e o nome do destilador estavam todos ausentes dos bytes em bruto, e não apenas desligados. Essa distinção importa mais do que parece: apagar só o ponteiro para um objeto deixa os seus bytes no ficheiro, onde qualquer analisador disposto a varrer os encontrará. Aqui, a remoção retira o próprio objeto.
A regra prática é curta. Use o botão, não o teclado. Esvaziar as caixas à mão é o gesto intuitivo, e continua a ser o que deixa metade do trabalho por fazer, porque remover o bloco XMP é uma marca separada que só aparece se houver um bloco para remover. O que mudou é que essa marca já não é silenciosa: o painel assinala o que sobreviveria ao guardar e avisa. O que não faz é marcar a caixa no seu lugar. O botão faz.
O que o campo Produtor deixa escapar
Dois dos oito campos nomeiam programas em vez de pessoas, e revelam mais do que quase toda a gente espera. Criador nomeia o programa em que o documento foi escrito; Produtor nomeia o programa que o transformou em PDF. Ambos incluem normalmente um número de versão, e por vezes também o sistema operativo. O pacote XMP transporta ambos outra vez sob os seus próprios nomes, e nada obriga a que coincidam: no ficheiro de teste, o dicionário Info nomeava duas vezes um processador de texto enquanto o pacote nomeava um programa de paginação e uma biblioteca PDF — um só documento, quatro programas no painel.
Um documento realmente publicado usado nestes testes — uma ficha informativa pública de um regulador nacional das telecomunicações — nomeia como Produtor uma versão concreta de destilador, plataforma incluída. É pouca coisa num documento público e bastante mais num documento que não queria ver seguido até uma secretária concreta. Diz ao leitor que programas a sua organização licencia, mais ou menos quando foram atualizados pela última vez, e em que plataforma correm. Combine isso com a data de criação e a máquina fica bastante circunscrita.
O que sobrevive a todo o apagamento: o identificador do documento
Todo o PDF guardado por um produtor sério traz um par de identificadores mesmo no fim do ficheiro. O primeiro é gerado quando o documento é criado e em princípio nunca muda; o segundo é regenerado sempre que o ficheiro é atualizado. Juntos permitem a um programa reconhecer que dois ficheiros são versões do mesmo documento, o que é o que faz funcionar as atualizações incrementais e as assinaturas digitais.
Esse par não é um metadado no sentido que o painel entende, pelo que não é mostrado nem oferecido — e sobrevive. Um documento real de oito páginas passou por um apagamento completo: cada entrada Info eliminada, o objeto XMP retirado, o ficheiro reescrito com menos de metade do tamanho original. O seu par de identificadores saiu do outro lado idêntico carácter a carácter ao par com que entrou. Se alguma vez enviou a alguém um rascunho anterior do mesmo documento, os dois ficheiros continuam a poder ser emparelhados, e o identificador é suficientemente estável para o afirmar com confiança.
Apagar metadados não é rasurar
Um PDF pode ser editado sem ser reescrito. Em vez de guardar um ficheiro novo, um programa pode acrescentar os objetos alterados ao fim do existente, juntamente com uma pequena tabela a dizer que objetos foram substituídos. Chama-se a isto atualização incremental, e é assim que funcionam as anotações, o preenchimento de formulários e as assinaturas digitais sem invalidar o que veio antes. A consequência é que um PDF pode conter versões anteriores do seu próprio conteúdo, ainda presentes nos bytes, apenas já não apontadas.
A pergunta justa é, portanto, se esta ferramenta reescreve ou acrescenta, e a resposta é que reescreve. Construiu-se um ficheiro com uma página cujo texto tinha sido substituído por uma atualização incremental, e submeteu-se a um apagamento completo de metadados. A saída foi um ficheiro de uma só revisão com menos de metade do tamanho, e um leitor mostrava o texto de substituição, corretamente. Mas o original suplantado continuava lá — um objeto completo e descomprimível a transportar as palavras que a atualização devia esconder, recuperável em meia dúzia de linhas de código. A reconstrução copia todos os objetos que conhece, referenciados ou não; não apura quais ficaram inalcançáveis.
Isto não é tanto uma crítica à ferramenta como uma fronteira à volta do que ela promete. É uma ferramenta de metadados: retira o que o ficheiro diz de si próprio, e fá-lo a fundo, nos dois depósitos, quando usa o botão. Não é um higienizador, não recolhe o lixo do documento, e não consegue retirar um texto que tapou com um retângulo preto noutro programa. Se um documento tem de ser seguro para publicar, a passagem pelos metadados é um passo entre vários, e o último deve ser reler o ficheiro acabado com uma ferramenta que lhe mostre o que lá está mesmo dentro.
| O que o ficheiro transporta | Mostrado no painel | Depois de esvaziar os campos à mão | Depois do botão «Esvaziar todos os campos» |
|---|---|---|---|
| Info: Título, Autor, Assunto, Palavras-chave | Sim, editável | Removido — a chave é apagada, não deixada em branco | Removido |
| Info: Criador e Produtor (programa e versão) | Sim, editável | Removido | Removido |
| Info: datas de criação e modificação | Sim, editável; as datas não tocadas nunca são reescritas | Removido | Removido |
| Pacote XMP (título, autor, programa de escrita, e mais) | Sim — os oito campos que partilha com Info, só para leitura | Continua lá, a nomear outro título e outro autor — e assinalado como divergente | Removido, e o próprio objeto é apagado |
| O par de identificadores no fim do ficheiro | Não | Sobrevive, carácter a carácter | Sobrevive, carácter a carácter |
| Conteúdo de página suplantado por uma revisão anterior | Não | Sobrevive como objeto, recuperável | Sobrevive como objeto, recuperável |
Perguntas frequentes
- Qual é a diferença entre o dicionário Info e o XMP, e porque divergem?
- São dois depósitos independentes para informação que se sobrepõe. O dicionário Info é uma lista curta de entradas com nome e faz parte do formato desde o início. O XMP é um bloco XML incorporado como objeto, capaz de transportar os mesmos campos com nomes normalizados mais tudo o que um fluxo de trabalho queira acrescentar. Nada os sincroniza. Um documento escrito num programa, paginado num segundo e exportado por um terceiro pode recolher cada depósito num momento diferente, e mudar o nome ou voltar a guardar atualiza um sem o outro. É por isso que um ficheiro pode apresentar um título inócuo no painel de propriedades de um leitor e um bem diferente numa ferramenta que leia XMP.
- O painel mostra os valores XMP mas não me deixa alterá-los. Porquê?
- Porque um pacote é um documento XML inteiro, não oito campos. Os oito no ecrã são os que o dicionário Info também transporta, e é isso que permite compará-los lado a lado; o mesmo pacote pode trazer menções de direitos, um histórico de revisões, perfis de cor e campos que uma cadeia de publicação inventou para si, sob esquemas que esta ferramenta desconhece. Reescrever os oito no lugar significaria voltar a serializar o XML de outra pessoa e esperar que mais nada partisse — e um pacote meio atualizado é pior do que um intacto, porque continuaria a divergir do dicionário Info, só que de forma menos visível. Por isso o pacote é lido, comparado e depois mantido inteiro ou removido inteiro. Se precisar de um XMP que diga algo concreto em vez de nada, defina-o no programa que produziu o documento.
- Apaguei tudo. O documento está agora anónimo?
- Menos identificável, não anónimo. Se usou o botão «Esvaziar todos os campos», ambos os depósitos de metadados desapareceram mesmo, o que retira o nome do autor, os programas, as versões e as datas. Resta o par de identificadores no fim do ficheiro, que atravessou um apagamento completo sem mudar e ainda pode ligar este ficheiro a qualquer cópia anterior do mesmo documento. Para além disso, o próprio conteúdo identifica-o: fontes licenciadas, um papel timbrado, uma expressão que usa sempre, uma imagem de assinatura e qualquer texto que uma revisão anterior tenha deixado. Apagar metadados é um passo útil e uma má última linha de defesa.
- Guardar carimba o ficheiro com um novo produtor ou uma nova data?
- Não, e é deliberado. A maioria das bibliotecas que escrevem um PDF põe o seu próprio nome no campo Produtor e fixa a data de modificação no instante de guardar, o que numa ferramenta cujo fim é apagar rastos equivaleria a acrescentar um. Aqui a carimbagem automática está desligada e cada campo é escrito ou apagado explicitamente. Testado editando um único campo e guardando: o Produtor, a data de criação e a de modificação voltaram sem alterações. Uma data que nunca tocou é também deixada tal e qual em vez de reescrita — as entradas do formulário só têm precisão ao minuto, pelo que voltar a guardar uma data que não editou perderia em silêncio os segundos, o que já é uma edição.
- Apagar os metadados remove conteúdo escondido ou eliminado?
- Não. A ferramenta retira o que o ficheiro diz de si próprio, não o que o ficheiro contém. Um PDF pode ser editado acrescentando alterações ao fim em vez de o reescrever, pelo que versões anteriores de uma página podem continuar nos bytes sem nada a apontar-lhes. Esta ferramenta reconstrói de facto o ficheiro em vez de lhe acrescentar — um ficheiro de teste com duas revisões voltou como uma, com menos de metade do tamanho, a mostrar corretamente o conteúdo novo. Mas a reconstrução copia todos os objetos que conhece, refira-se algo a eles ou não, pelo que o original suplantado continuava na saída e podia ser relido com meia dúzia de linhas de código. Tome o apagamento de metadados como um passo para um documento publicável, nunca como o todo.
- Porque é que a ferramenta recusa o meu PDF, e como devo introduzir as palavras-chave?
- Uma recusa é quase sempre encriptação. A ferramenta di-lo por palavras e pede-lhe que retire primeiro a palavra-passe. Note que um ficheiro pode estar encriptado sem nunca lhe pedir uma palavra-passe: muitos documentos publicados trazem um gestor de segurança com palavra-passe de utilizador vazia, o que os deixa abrir instantaneamente e ainda assim recusar ser modificados. Para as palavras-chave, use vírgulas. A vírgula é o único separador fiável, porque os produtores divergem: uns escrevem as palavras-chave separadas por espaços e outros por vírgulas. Se a sua linha não contiver vírgula nenhuma, é escrita exatamente como a escreveu, como uma única palavra-chave, em vez de ser partida pelos espaços e transformada em silêncio em várias.
Artigos que podem interessar-lhe
Todos os guias →Ferramentas relacionadas
Tudo o que aqui se descreve foi medido em agosto de 2026 executando estas ferramentas sobre ficheiros reais, e não deduzido do que uma ferramenta PDF deveria fazer. O comportamento dos PDF não é uniforme: o formato é definido pela norma ISO 32000, mas a ordem de leitura, as convenções de metadados e as caixas de página são lugares onde duas ferramentas aparentemente corretas divergem, e um ficheiro escrito por um produtor pouco comum pode comportar-se de forma diferente de todos os testados aqui. Antes de aplicar qualquer um destes tratamentos a um documento que não possa substituir, trabalhe sobre uma cópia e abra o resultado num leitor em que confie.
Fontes
Detetaste um erro neste artigo?