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 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“.

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.
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.

View Comments

  • Bom... rsrsrsrs,
    Primeiramente quero parabenizá-lo pelas dicas aqui contidas, sou um amante fascinado por: jornalismo e designer gráfico, porém estou ingressando agora, e buscando o Maximo de informações para o desenvolvimento de um jornal local.
    Esta sendo de grande ajuda suas dicas, para eu um mero aprendiz.
    Fico muito grato pela sua iniciativa de compartilhar conhecimento.
    Parabéns.
    Lucciano Lamin .*.

  • Meira, sempre aproveito suas dicas nas minhas aulas, chegando até a te pedir permissão por email para utilizar seus textos, desde que referenciados, é claro!
    Sou professora de Planejamento Gráfico e Editoração Eletrônica da UNISA, na Faculdade de Jornalismo.
    Também estou apanhando para elaborar esses scripts de legenda e em relação ao Indesign CS4 eles não funcionam, pois acho que não estou sabendo onde colocá-los. O CS4 já vem com scripts Label e LabelGraphis, mas como não sou programadora, não sei se é aí que devo colocá-los. Além disso, a pasta que vc diz não existe dentro da Presets, é preciso criá-la? Ou colocá-la na pasta script mesmo?
    Sei que andas ocupado, mas tiver um tempo, me dê um help ou uma luz!

    obrigada
    Elizabeth Fantauzzi

    • Oi, Elizabeth!

      Que legal que o material está sendo aproveitado! Obrigado pelo prestígio.

      Como agora eu uso o Scribus nas minhas aulas da Federal de Santa Maria, não posso ajudar você nestes detalhes do novo InDesign. Talvez alguns comandos tenham mudado do CS2 para o CS4. Também não sei onde ficam as pastas adequadas. Mas é possível que o InDesign tenha manuais de script que ajudem nisso. Verifique na documentação do produto, inclusive nas seções "O que que há de novo".

      Para achar os scripts, faça uma busca automática nas pastas do InDesign (pela extensão dos arquivos, por exemplo). Ou veja pela palheta Scripts, na parte de carregar scripts.

      Sucesso, e abração!

  • Meira:

    Achei muito bacana e útil seu script. Porém, ao testá-lo aqui percebi que só é executado no Indesign CS2. É possível utilizá-lo no CS3? Se for possível, onde altero no código para que ele funcione?

    Abraço.

    • Olá, Marcos! Ainda não testei no CS3. Seria o caso de tentar rodar e verificar onde há erros e procurar os comandos específicos que mudaram do CS2 para o CS3. Não é muito difícil, mas agora estou envolvido com scripts para Scribus. Mas sinta-se livre para modificar. Mande os resultados!

  • olá José Antonio,
    Estou deixando este comentário referente a scripts para InDesign. Criei uma comunidade no Orkut sobre script para InDesign.

    A intenção é reunir o máximo de pessoas (principalmente brasileiros) que trabalham com scripts e que gostam de compartilhar, e claro, aprender ainda mais.

    O problema é que no Brasil são poucos os que estudam essa parte do InDesign, ou seja, raramente encontro alguém que trabalha com scripts.

    Assim como a comunidade .Adobe InDesign BR tem boas discussões e é bem movimentada devido aos suporte que os moderadores sempre estão dando, isso pode acontecer os essa nova Comunidade que é somente para scripts.
    Participo da comunidade .Adobe InDesign BR desde janeiro/fevereiro de 2008.

    Se vc quiser participar da comunidade, claro que não sei se vc tem uma conta no Orkut, mas as portas estão abertas.

    Comunidade InDesign Scripting BR
    http://www.orkut.com.br/Main#Community.aspx?cmm=55534994

    Obrigado e desculpe a invasão,
    Elvis Santos

  • Olá, José...

    Muito bom seu script, realmente muito útil. Porém, tenho uma dúvida: não consegui setar a tecla de atalho para o mesmo, pois quando pressiono a sequencia de teclas abre outra janela. Fui nas opções do InDesign e setei outra sequencia de teclas, mas quando pressiono, abre a janela de edição do Script, ao invés de executá-lo.

    Uso o InDesign CS2 PT-BR.

    Entre em contato comigo via e-mail, pois tenho interesse em realizar uma palestra de diagramção na ADJORI-PR e gostaria muito da sua presença, a fim de expor dicas muito úteis como estas.

    Att,

    Roberto Jonikaites

    • Olá, Roberto!

      Obrigado pelo prestígio. Terei imenso prazer em conversar com os associados da ADJORI-PR. :)

      Quanto ao seu problema, eu consegui atribuir uma tecla de atalho ao script assim: (traduzi do manual, não tenho o InDesign em português, por isso não sei se os nomes estão corretos)

      "Para adicionar um atalho a um script, escolha menu Editar > Atalhos de Teclado, selecione um conjunto de atalhos do menu "Conjunto", então selecione Scripts no menu "Área de Produto". Irá aparecer a lista de scripts disponíveis na sua paleta de scripts. Selecione um script e atribua um atalho de teclado como você faz para qualquer outro recurso do InDesign. (Adobe InDesign CS2 Scripting Guide, Getting Started with InDesign Scripting, pág. 41)

      "To add a keyboard shortcut for a script, choose Edit > KeyboardShortcuts, select an editable shortcut set from the Set menu, then select Scripts from the Product Area menu. A list of the scripts in your Scripts palette appears. Select a script and assign a keyboard shortcut as you would for any other InDesign feature."

      No meu teste, funcionou perfeitamente. Escreva novamente se não funcionar com você.

      O script ainda precisa alguns tratamentos de erro. Acontece um "erro nº1" estranho às vezes com meus alunos, tenho que escrever algumas linhas de código para ignorar este erro. Também dá erro de, ao girar o crédito, o objeto ficar fora da área da página. Em breve colocarei o novo script em linha.

      Abração! Entre em contato para palestras.

  • José,

    Não seria mais interessante criar uma caixa de diálogo contendo as informações de medida, por exemplo?

    A minha infelicidade é não conhecer Javascript.
    Mas as vezes pego arquivo em java a "traduzo" para VBS.

    Espero que te ajude.

    'Exemplo de aplicar Vincular estilo de parágrafo no estilo de objeto
    '--------------------------------
    'Se for CS3 mude a linha abixo para CS3.
    Set myInDesign = CreateObject("InDesign.Application.CS2")

    With myInDesign.Documents.Add
    Set MyColor = .Colors.Add
    With MyColor
    .Name = "Vermelhão"
    .ColorValue = Array(0, 100, 100, 0)
    End With

    'Criando o estilo de parágrafo.
    'Claro que ele tem de ser criado antes do estilo de objeto.
    Set MyPgrafStyle = .ParagraphStyles.Add
    With MyPgrafStyle
    .Name = "Meu Parágrafo"
    .AppliedFont = "Arial"
    .PointSize = 20
    .FillColor = MyColor
    .FontStyle = "Bold"
    End With

    Set MyObjStyle = .ObjectStyles.Add
    With MyObjStyle
    .Name = "Meu Objeto"
    .EnableStroke = False
    .EnableParagraphStyle = True 'Habilita o estilo de parágrafo no estilo de objeto.
    .AppliedParagraphStyle = MyPgrafStyle 'Define o estilo de parágrafo no estilo de objeto (vinculado).
    End With

    With .TextFrames.Add
    .GeometricBounds = Array(20, 20, 50, 185)
    .Contents = "Verifique as propriedades do estilo de Objeto e do estilo de parágrafo."
    .ApplyObjectStyle MyObjStyle
    End With
    End With

    'Boa sorte!

    • Sua solução é outra opção interessante, Elvis. Eu escolhi da forma acima porque o maior trabalho de um funcionário de jornal-laboratório é arrumar diagramação feita por alunos. Ou seja, já existe um quadro para fotos. Ele é redimensionado até que todo o texto entre no bloco de texto. Feito isto, é aplicado este script.

  • Olá, Pereira! O script está pronto no final do artigo. É só baixar e colocar na pasta certa do InDesign, conforme está no texto.
    Abraços!

  • não consegui criar este script. por acaso tem como vc enviar um arquivo do indesign pra ver se eu consigo alterar. Grato.

Recent Posts

Sempre faça um fotão

Colheita de soja. Foto: Wenderson Araujo/Trilux Fotógrafos de mídias rurais já perderam a conta das…

1 year ago

A corrupção dos tolos

João Batista MezzomoAuditor fiscal O que está por trás de tudo o que está acontecendo…

4 years ago

Naomi who? Naomi Wu!

A.k.a. "SexyCyborg". A mulher do século 21. Naomi Wu testa seu iluminador de implantes na…

5 years ago

Raspagem de dados

A principal ferramenta do jornalista de dados é a planilha, tipo LibreOffice Calc, M.S. Excel…

5 years ago

Que estratégia político-terapêutica pára um governo deliroide?

Rita Almeida, 9 de março de 2019 Psicóloga Rita Almeida: não delirantes, mas deliroides. Não…

6 years ago

Sua tia não é fascista, ela está sendo manipulada

Rafael Azzi5 de outubro de 2018 Você se pergunta como um candidato com tão poucas…

6 years ago