Dois defeitos reais, de dois livros nossos.
No primeiro, o ISBN estava gravado nos dados do livro, e nenhuma página do PDF o imprimia. A página de créditos simplesmente não tinha a linha. O número "existia", e o livro saiu sem ele.
No segundo, um modelo de diagramação tinha escrito ISBN ‹A PREENCHER› direto no arquivo, e ignorava o número verdadeiro, que estava certo nos dados. O PDF mostrava a marca de pendência para um livro que já tinha ISBN.
Os dois têm a mesma causa: estar nos dados não é estar no livro. Este artigo mostra como conferir o ISBN e a ficha catalográfica dentro do PDF, com dois scripts, e as regras que a nossa ficha segue.
O ISBN em poucas linhas
ISBN é o número de 13 dígitos que identifica uma edição de livro no mundo. Cada formato tem o seu: o impresso, o digital e o audiolivro têm números diferentes, e uma segunda edição também. O último dígito é de verificação, e se calcula assim:
- some os 12 primeiros dígitos, multiplicando por 1 os de posição ímpar e por 3 os de posição par;
- o dígito verificador é o que falta para chegar ao próximo múltiplo de 10.
Este script faz a conta:
#!/usr/bin/env python3
"""Valida o dígito verificador de um ISBN-13. Uso: python3 isbn13.py 978-0-306-40615-7"""
import sys
d = [int(c) for c in sys.argv[1] if c.isdigit()]
ok = len(d) == 13 and (10 - sum(x * (1 if i % 2 == 0 else 3) for i, x in enumerate(d[:12])) % 10) % 10 == d[12]
print(sys.argv[1], "OK" if ok else "DÍGITO VERIFICADOR NÃO BATE")
sys.exit(0 if ok else 1)
python3 isbn13.py 978-0-306-40615-7
Com o número de exemplo usado em manuais de ISBN, a saída foi OK. Trocando o último dígito para 8, a saída foi DÍGITO VERIFICADOR NÃO BATE, e o código de saída 1. Em um lote nosso de oito ISBNs, conferimos que os oito dígitos batiam e que não havia duplicata.
Quem concede o ISBN no Brasil é a agência nacional do ISBN. Nas páginas de bibliotecas universitárias que consultamos, essa agência é a Câmara Brasileira do Livro, com solicitação pelo site dela e pagamento por boleto. Confirme o endereço e os valores atuais na fonte oficial, porque eles mudam e nós não os fixamos aqui.
Conferir se o ISBN aparece em alguma página
O script abaixo procura o número, sem hífens e sem espaços, em cada página do PDF:
#!/bin/bash
# O ISBN declarado aparece em alguma página do PDF? Uso: bash isbn_no_pdf.sh miolo.pdf 9780306406157
isbn="$2"
total=$(pdfinfo "$1" | awk '/^Pages/{print $2}')
for p in $(seq 1 "$total"); do
pdftotext -f "$p" -l "$p" "$1" - | tr -d '\n -' | grep -q "$isbn" && { echo "ISBN $isbn encontrado na página $p"; exit 0; }
done
echo "REPROVADO: o ISBN $isbn não aparece em nenhuma página"; exit 1
bash isbn_no_pdf.sh miolo.pdf 9780306406157
No nosso teste, em um PDF cuja página 1 trazia o ISBN, a saída foi ISBN 9780306406157 encontrado na página 1. Em um PDF sem o número, a saída foi REPROVADO com código 1. Essa conferência vira uma guarda: se o número declarado não aparece, o arquivo não vai para a gráfica.
Há ainda um falso alarme conhecido. Um número de marcação como 978-65-00000-00-0 aparece em arquivos de teste que o motor gerava quando os dados não traziam ISBN. Não é um risco de livro publicado: é a prova de que o campo estava vazio.
A ficha catalográfica
A ficha vai na página de créditos, no verso da folha de rosto. A nossa página de créditos segue esta ordem:
- © titular e ano;
- a grade de responsabilidades em duas colunas (autor, revisão, capa e diagramação);
- a linha do Acordo Ortográfico;
- o bloco da ficha, com entrada do autor invertida, título e subtítulo, local, editora e ano, colação, ISBN, assuntos, a linha "I. Título." e a classificação;
- direitos, selo, CNPJ e endereço;
- cidade e ano.
Três regras protegem a ficha.
A colação é medida no PDF. A frase "82 p. ; 23 cm." mente sozinha, porque qualquer ajuste de diagramação muda o número de páginas e nada acusa. O arquivo recompila, lê o total com pdfinfo e corrige a colação se divergir. O método de duas passadas está em boneco e miolo, dois arquivos do mesmo livro.
A altura declarada é a do livro aparado, arredondada para cima. A norma de descrição bibliográfica pede só a altura. Em 6 x 9 polegadas, 22,86 cm viram 23 cm. Se a página tem sangria, ler a altura do arquivo faria a ficha declarar 24 cm em um livro que sai com 23.
Campo que só quem emite preenche vai visível. Classificação decimal, cidade e CNPJ, quando não há resposta, saem com a marca ‹A PREENCHER›. Melhor a pendência aparecer na prova do que o registro mentir. A nossa casa não usa bibliotecário: a classificação vai só com o número, e a linha de registro profissional não é impressa.
O ISBN dentro da ficha, e não duas vezes
Quando a ficha existe, o ISBN já vai dentro dela. Imprimir de novo na página de créditos é erro. Quando a ficha não existe, o ISBN precisa aparecer em outro lugar da página. O nosso motor decide isso sozinho, por um marcador que diz se há ficha. A primeira versão do modelo não imprimia o ISBN em lugar nenhum, e foi achada ao conferir um livro.
Passo a passo
- Valide o dígito verificador de cada ISBN com o script.
- Declare o ISBN no dado do livro, um por formato.
- Gere o PDF e rode a conferência de presença do número.
- Meça o total de páginas e a altura do corte, e compare com a colação da ficha.
- Deixe
‹A PREENCHER›em todo campo sem resposta. Nenhum campo em branco, nenhum inventado. - Rode de novo depois de qualquer ajuste de diagramação: a colação é a primeira a mentir.
O erro que custa caro
Confiar no dado. O número certo no arquivo de configuração, com a página errada ou um modelo que ignora o campo, é um livro sem ISBN. O outro erro é a colação declarada à mão: a ficha mente sozinha na primeira revisão que muda uma página.
Quando NÃO usar
Em livro só digital, a colação em páginas não se aplica, e o ISBN costuma aparecer nos metadados do arquivo e na página de créditos. Em livro sem ficha, o ISBN vai na página de créditos, e a conferência de presença vale do mesmo jeito.
Alternativa sem o nosso ambiente
Os dois scripts usam Python e o poppler. Em um programa de layout visual, a conferência é a mesma: abrir o PDF final e procurar o número, com a busca do leitor de PDF, em todas as páginas. O que não muda é medir no arquivo final.
O que o Claude faz hoje, e como fazer sem ele
Hoje o Claude lê o total de páginas e a altura do PDF, recompila a ficha e roda a guarda do ISBN. Sem ele, os scripts e o pdfinfo fazem a mesma conferência.
Onde entra na operação
A ficha e o ISBN ficam no pré-texto, que é montado em pares recto e verso: pré-texto em 13 posições. A conferência final do arquivo está no checklist de preflight do miolo. O guia da esteira é Como produzimos o miolo de um livro profissional sem InDesign.
Baixe, para guardar: checklist de preflight do miolo, com comando e limite por item (PDF).
Versões usadas neste artigo: veja a matriz de versões.



