Embora existam ferramentas para acessar metadados de PDF como pdfinfo
, não encontrei uma maneira adequada de obter o ID do trailer. Em vez disso, uso um editor e pesquiso... Então, minha primeira pergunta é se há uma ferramenta de linha de comando para fazer esse trabalho para mim.
Ainda assim, descubro e me pergunto: O id tem duas partes e o trailer se parece com isso:
trailer << /Info 2 0 R /Root 1 0 R /Size 3656
/ID [<2442556d3492442c8e034f4bf45c46d4><31415926535897932384626433832795>] >>
Fico pensando sobre a intenção das 2 partes id; a especificação do PDF não diz nada sobre isso. Nos meus PDFs criados em latex, as duas partes coincidem.
Também me pergunto que parece que há ferramentas como qpdf
escrever letras minúsculas enquanto outras, como compiladores de látex, parecem usar letras maiúsculas. Isso dificulta os testes de igualdade.
Mesmo a invocação de qpdf
with SOURCE_DATE_EPOCH=hex number
não altera o resultado. ... Isso é diferente dos compiladores latex.
Sobre sua segunda pergunta
A especificação do PDF explica:
(ISO 32000-2)
Assim, a primeira parte identifica o documento em todas as revisões e a segunda parte identifica a revisão individual.
Strings hexadecimais podem usar letras minúsculas ou maiúsculas, até mesmo uma mistura delas. A comparação de IDs deve estar pronta para lidar com isso.
Você pode extrair os IDs no formato JSON com
cpdf -print-dict-entry /ID in.pdf
por exemplo