Uma capa chegou para conferência com uma foto do autor na frente. O arquivo estava em CMYK, tinha a resolução certa e o texto legível. Mesmo assim, no ponto mais carregado da foto, a soma das quatro tintas dava 358%.
Essa soma se chama cobertura total de tinta, ou TAC (do inglês total area coverage). Ela importa porque o papel não aguenta tinta sem limite. Quando a soma passa do que o papel segura, a tinta não seca, repinta na folha seguinte e borra no vinco. A capa antiga não podia ir para a gráfica. A capa nova fechou em 296%.
Este artigo explica o que é o TAC, qual o teto por tipo de papel, como medir no PDF e por que a lombada do livro depende do mesmo assunto: o papel que a gráfica vai usar.
O que é o TAC
Cada ponto de uma imagem em CMYK é uma mistura de quatro tintas: ciano, magenta, amarelo e preto. Cada uma vai de 0% a 100%. O TAC de um ponto é a soma das quatro. Um ponto com 100% de cada tinta soma 400%. O TAC do arquivo é o do ponto mais carregado.
Os tetos
| Papel | O que costuma segurar |
| Sem revestimento | 240 a 260% |
| Couché (com revestimento) | 300 a 330% |
Esses são valores de referência que usamos, e não uma norma. O limite real é o da gráfica, e depende do papel e da máquina dela. No nosso gate do miolo, o teto é de 300%, provisório, porque o papel ainda não foi definido. Se o papel final for sem revestimento, esse teto é alto demais, e o arquivo precisa ser medido de novo.
Como medir
Rasterize o PDF em CMYK e some os quatro canais em cada pixel. O script abaixo faz isso com o Ghostscript, em baixa resolução, e devolve o ponto mais carregado do arquivo inteiro:
#!/usr/bin/env python3
"""Cobertura total de tinta (TAC) de cada página. Uso: python3 tac.py miolo.pdf [teto]"""
import os, subprocess, sys, tempfile
import numpy as np
from PIL import Image
pdf, teto = sys.argv[1], float(sys.argv[2]) if len(sys.argv) > 2 else 300.0
d = tempfile.mkdtemp()
subprocess.run(["gs", "-dBATCH", "-dNOPAUSE", "-dSAFER", "-q", "-sDEVICE=tiff32nc", "-r40",
f"-sOutputFile={d}/p%04d.tif", pdf], check=True)
pior = (0.0, 0)
for n, f in enumerate(sorted(os.listdir(d)), 1):
im = Image.open(f"{d}/{f}")
v = float((np.asarray(im, dtype=np.float32).sum(axis=2) / 255 * 100).max())
if v > pior[0]: pior = (v, n)
print(f"TAC máximo {pior[0]:.0f}% na página {pior[1]} (teto {teto:.0f}%)")
sys.exit(1 if pior[0] > teto else 0)
Rode assim, passando o teto como segundo argumento:
python3 tac.py miolo.pdf 300
No nosso arquivo de teste, em K puro, o resultado foi TAC máximo 100% na página 1. Quando trocamos o preto do texto por preto de quatro cores, o mesmo arquivo foi para 400% e o script saiu com código 1. É o teste de mutação que prova que a conferência funciona.
Um cuidado: a medição a 40 pontos por polegada acha o ponto mais carregado de áreas, e não de detalhes de um pixel. Para foto de capa, olhe também a imagem original e a página em resolução maior.
O que fazer quando passa do teto
O nosso caso era a foto do autor, e a capa nova, refeita, fechou em 296%. As saídas que existem, em ordem de custo:
- Trocar a foto por uma versão com menos tinta nas sombras.
- Refazer a conversão de cor com o perfil da gráfica, que costuma carregar o limite de tinta do papel dela. Confirme com ela.
- Mudar o papel para um que segure mais, se o projeto aceitar.
A segunda é a melhor, e depende de a gráfica nos dar o perfil. Enquanto ela não informa, o nosso arquivo leva um perfil provisório, declarado como provisório, e o TAC medido também é provisório.
A lombada: o outro número que depende do papel
A lombada é a espessura do livro, e sai de uma conta:
espessura da folha (mm) = gramatura (g/m²) × mão ÷ 1000
lombada (mm) = (número de páginas ÷ 2) × espessura da folha
A mão do papel é o seu "volume": quanto o papel incha em relação à gramatura. Ela varia entre fabricantes, e é o número que ninguém confere. Errar a mão desalinha o título na lateral da capa, e só se vê com o livro impresso na mão.
Por isso, a lombada entra na especificação como tabela por papel candidato, e o valor só é definitivo depois que a gráfica confirmar a mão do papel que vai usar. Em um papel de 80 g que usamos como referência, medimos 0,063 mm por página, conferido contra a conta de um livro real. Este script faz a conta, e a largura da capa aberta com ela:
#!/usr/bin/env python3
"""Lombada e largura da capa aberta. Uso: python3 lombada.py PAGINAS GRAMATURA MAO [LARGURA_MM] [ORELHA_MM] [SANGRIA_MM]
Valores sem a confirmação da gráfica são provisórios: a mão do papel é dela."""
import sys
paginas, gramatura, mao = int(sys.argv[1]), float(sys.argv[2]), float(sys.argv[3])
largura = float(sys.argv[4]) if len(sys.argv) > 4 else 152.4
orelha = float(sys.argv[5]) if len(sys.argv) > 5 else 0.0
sangria = float(sys.argv[6]) if len(sys.argv) > 6 else 3.0
folha = gramatura * mao / 1000 # espessura da folha (mm)
lombada = (paginas / 2) * folha # uma folha tem duas páginas
aberta = orelha + largura + lombada + largura + orelha
print(f"folha {folha:.3f} mm | lombada {lombada:.1f} mm | capa aberta {aberta:.1f} mm | arquivo com sangria {aberta + 2 * sangria:.1f} mm")
if paginas % 4: print("AVISO: o miolo não fecha caderno (múltiplo de 4)")
Para um miolo de 200 páginas, em 6 x 9 polegadas, sem orelha, com papel de 80 g e mão de 1,575, a saída foi:
folha 0.126 mm | lombada 12.6 mm | capa aberta 317.4 mm | arquivo com sangria 323.4 mm
A tabela abaixo é o modelo do que vai para a especificação. O único papel preenchido é o que medimos. Os demais ficam "a definir", e nunca inventados:
| Papel candidato | Gramatura | Mão | Folha | Lombada para 200 páginas |
| Referência medida | 80 g | 1,575 | 0,126 mm | 12,6 mm |
| Candidato 2 | a definir | a definir | a definir | a definir |
| Candidato 3 | a definir | a definir | a definir | a definir |
Passo a passo
- Meça o TAC do miolo e da capa com o script, com o teto provisório de 300%.
- Peça à gráfica o papel, a mão, o perfil de cor e o limite de tinta.
- Refaça a medição com o teto real.
- Calcule a lombada para cada papel candidato, com o número de páginas medido no PDF do miolo, e não o declarado.
- Registre tudo na especificação, com "a definir" onde a gráfica não respondeu.
O erro que custa caro
Aprovar o arquivo pela cor, e não pela soma. A capa antiga tinha cor certa e tinta demais. Olhar para a imagem não mostra isso. Só a soma dos canais mostra, e só a conversa com a gráfica diz qual é o limite.
O segundo erro é calcular a lombada com a mão de um papel que a gráfica não vai usar. O número parece exato, e a capa sai desalinhada.
Quando NÃO usar estes números
Os tetos de 240 a 260% e 300 a 330% são referências. Se a sua gráfica trabalha com outro processo ou outro papel, vale o que ela disser. E se o seu livro é só digital, o TAC não se aplica.
Alternativa sem o nosso ambiente
O preflight do Acrobat e o pdfToolbox medem a cobertura de tinta e dão alertas por limite. Preços a confirmar nos sites oficiais. O script do artigo usa só Ghostscript, Python, numpy e Pillow, todos gratuitos.
O que o Claude faz hoje, e como fazer sem ele
Hoje o Claude mede o TAC, calcula a lombada a partir do número de páginas do PDF e lista o que a gráfica ainda precisa confirmar. Sem ele, os dois scripts do artigo fazem a mesma conta.
Onde entra na operação
A medição de tinta é um dos oito grupos do checklist de preflight do miolo, e o fechamento do arquivo está em CMYK, K puro e PDF/X-1a. A geometria da capa aberta tem artigo próprio neste cluster. O guia completo é Como produzimos o miolo de um livro profissional sem InDesign.
Baixe, para guardar: tabelas de referência de formato, sangria e tinta (PDF).
Versões usadas neste artigo: veja a matriz de versões.



