InDesign: legendas e créditos de fotos automaticamente

Uma das coisas que mais se faz em jornalismo gráfico é colocar legenda e crédito em fotos. Essa é uma operação chata porque envolve manipulação de objetos gráficos pequenos e ajuste preciso. E o ajuste em jornal precisa ser sempre preciso.

Lembre-se de que se um jornal aparece com erro de diagramação, vai parecer que ele erra também na apuração, na redação, na distribuição. Enfim, se há algo desalinhado nas páginas de seu jornal, há algo desalinhado em toda a empresa ou instituição.

Para ajudar os alunos e os funcionários do Jornalismo do IPA envolvidos nas publicações Universo IPA (jornal mural, jornal broadsheet (standard), jornal tablóide, revista, site), resolvi aprender JavaScript para programar o Adobe inDesign, como já faço com o Python e Scribus. Assim surgiu este script para alinhar foto, legenda e crédito da foto.

InDesign pode ser controlado com as chamadas “linguagem script”. São linguagens para se escrever programas, supostamente com rapidez, destinadas a resolver necessidades de outros aplicativos. Por exemplo, todos os navegadores usam JavaScript para controlar as páginas Web. Além dos navegadores, outros programas usam JavaScrip, notadamente o Adobe Acrobat e o Adobe InDesign.

O Adobe InDesign executa programas em três linguagens: Applescript, VBScript e JavaScript. As duas primeiras são exclusivas dos computadores Macintosh e Windows, respectivamente. Então, programar e aprender uma destas linguagens significaria desenvolver programas e comandos para um número mais limitado de pessoas. Resolvi adotar JavaScript, que também é a base da Web atualmente. Assim, os programas que eu desenvolver serão compatíveis com Mac e com Windows.

Como ponto negativo, descobri que JavaScript, por questões de segurança, não tem drivers para bases de dados. Ou seja, não posso consultar textos em bancos de dados e diagramar uma página automaticamente como faço no Scribus. É uma grande falta, porque não posso editar diretamente registros de blogs e CMS para usar como sistema editorial.

Mas, de resto, JavaScript é uma linguagem razoável para uso geral. Scripts InDesign feitos em JavaScript podem rodar sem problema em Windows, Macintosh e talvez até mesmo em Wine no Linux (tenho que testar isso em breve).

O que esse meu script (para download mais abaixo) faz :

  1. Pega dois ou três quadros selecionados.
  2. Considera o primeiro quadro como foto
  3. Monta a legenda
  4. Monta o crédito da foto

Coloquei o script na pasta c:\Arquivos de programas\Adobe\Adobe InDesign CS2\Presets\Scripts\ do Adobe InDesign para que ele apareça na paleta de Scripts (Windows > Automation > Scripts):

Menu para a paleta de scripts do InDesign

Seleciono a foto e um quadro qualquer para legenda, e mais um quadro opcional para crédito da foto (ou seja: seleciono dois ou três objetos).

Dois ou três quadros são selecionados

No script, usei comandos “prompt” e “confirm” do JavaScript, que oferecem uma interface com usuário simples mas fácil de ser implementada. Abaixo, resultado obtido com “confirm” e “prompt”:

Diálogo de "Confirm"

indesign-window-automation-script-atuando05

InDesign usando o comando "dialog"

O script deixará:

  1. Primeiro quadro intacto, mas transformado em quadro de imagem e com o estilo de objeto “Foto“;
  2. O segundo quadro vira legenda, formatado com o estilo de objeto “Legenda“;
  3. O terceiro quadro, se houver, vira crédito da foto, formatado com o estilo “Crédito da Foto“.
monta-fotolegenda-credito-dialogs

Quadros de diálogo da montagem de fotolegenda e credito

Acima, o resultado final do script: o quadro da foto com um quadro de legenda embaixo e um quadro de crédito na direita, “em pé”. Se os quadros já contiverem texto, o script dará opção de não editá-los, só modificar o tamanho e posição dos quadros.

Se os estilos não existirem ainda, serão criados com as definições default do meu InDesign.

Eu posso mudar as medidas conforme meu projeto gráfico. As variáveis que valem a pena serem modificadas estão no início do script. Mudo conforme a necessidade e dou um nome diferente para os arquivos.

Se os quadros tiverem conteúdo, serão preservados. A foto não será agrupada com a legenda e com o crédito, para que eu possa redimensioná-la se necessário. Só agrupo depois de escolhidas as dimensões finais da foto.

A foto tem text wrap de zero em cima, para ser colocada próximo aos títulos. Nos lados, o text wrap é de 5 mm, e em baixo, de 10 mm para dar espaço à legenda. Estas medidas podem ser modificadas no início do script.

O quadro de legenda e crédito ignoram o text wrap, para que o texto apareça. Eles também têm o text wrap de zero, apenas o suficiente pra não ficarem em cima de texto nenhum.

Para completar a automação, atribuí este script às teclas SHIFT+CTRL+ALT+F. E manualmente setei os estilos de frames determinando o estilo de parágrafo. Por exemplo, o frame de estilo “Legenda” formata o texto que contém com o estilo de parágrafo de estilo “Legenda”. Tenho que descobrir como fazer isto pelo próprio script.

O alinhamento de fotos é simples:

  1. Redimensiono a foto;
  2. Seleciono os quadros da legenda e do crédito, com shift+clic;
  3. Teclo o atalho.

Aqui está o script para montar foto, legenda e crédito no InDesign, versão 008.

Bibliografia

  1. FLANAGAN, David.  Javascript – The Definitive Guide. 4Th Edition. O’Reilly. Arquivo CHM (html help do Windows).
  2. KAHREL, Peter. Scripting InDesign with JavaScript. O’Reilly Media, 2006. ISBN: 0-596-52817-5. Comprado pela O’Reilly em formato PDF.
  3. Adobe InDesign CS2 Scripting Guide. Adobe Systems Incorporated, 2006. Documento PDF.
  4. JavaScript Tutorial. Site web disponível em: <http://www.w3schools.com/js/default.asp>. Acesso em 10 jul. 2008.

About José Antonio Meira da Rocha

Jornalista, professor das áreas de Editoração e de Mídias Digitais na Universidade Federal de Santa Maria, campus cidade de Frederico Westphalen, Rio Grande do Sul, Brasil. Doutor em Design pelo Programa de Pós-Graduação em Design (PGDesign)/Universidade Federal do Rio Grande do Sul (UFRGS), Porto Alegre, Brasil, 2023. Mestre em Mídias pela UNISINOS, São Leopoldo, RS, Brasil, 2003. Especialista em Informática na Educação, Unisinos, 1976.