Resposta curta: Sim, é possível.
Um pouco mais:
O que me vem à mente no início é pdftk
, que pode sobrepor um arquivo PDF com outro, consulte link :
pdftk in.pdf background back.pdf output out.pdf
background
< background PDF filename | - | PROMPT >Applies a PDF watermark to the background of a single input PDF.
Pdftk uses only the first page from the background PDF and applies it to every page of the input PDF. This page is scaled and rotated as needed to fit the input page. You can use - to pass a background PDF into pdftk via stdin.
If the input PDF does not have a transparent background (such as a PDF created from page scans) then the resulting background won’t be visible — use the stamp operation instead.
ou
pdftk in.pdf stamp back.pdf output out.pdf
stamp
< stamp PDF filename | - | PROMPT >This behaves just like the background operation except it overlays the stamp PDF page on top of the input PDF document’s pages. This works best if the stamp PDF page has a transparent background.
Nessa fase, não é completamente automatizado, você ainda precisa criar o arquivo back.pdf
manualmente.
Uma solução automática possível é criar um arquivo PS com um texto de modelo na posição desejada, pesquisar e substituir esse texto (em un * x por sed
) pelo nome do cliente e processar o resultado com ps2pdf
. [ EDITAR : Veja minha segunda resposta para um howto passo-a-passo.]
Mas tenho certeza de que existem ferramentas mais elaboradas ... muitas revistas científicas fazem exatamente o mesmo. Um desses arquivos PDF identifica seu produtor como
Producer: StampPDF Batch 4.1.1 Solaris SPDF_1116
Então StampPDF parece ser um software profissional exatamente com esse objetivo.
Eu gostei desse desafio. Então, aqui está um tutorial passo-a-passo:
- Criar modelo PS. Isso é um pouco complicado, o texto deve estar contido inalterado. (Exporte PS com texto como texto e não inclua frases como no CorelDRAW). Aqui está um exemplo: stamp.eps
Use
sed
parainserironomedoclienteeadataatual,exportarparaPDFdeumasóvez.ÉclaroqueonomedoclientepodevirdoDB-Queryoudequalqueroutracoisa...sed"s/to C/to Alex/;s/on D/on $(date)/" stamp.eps | ps2pdf -dAutoRotatePages=/None - stamp.pdf
Use
pdftk
paracarimbarissonoseuarquivoPDForiginalpdftkoriginal.pdfstampstamp.pdfoutputwebversion.pdf