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 :
- Pega dois ou três quadros selecionados.
- Considera o primeiro quadro como foto
- Monta a legenda
- 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):
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).
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”:
O script deixará:
- Primeiro quadro intacto, mas transformado em quadro de imagem e com o estilo de objeto “Foto“;
- O segundo quadro vira legenda, formatado com o estilo de objeto “Legenda“;
- O terceiro quadro, se houver, vira crédito da foto, formatado com o estilo “Crédito da Foto“.
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:
- Redimensiono a foto;
- Seleciono os quadros da legenda e do crédito, com shift+clic;
- Teclo o atalho.
Aqui está o script para montar foto, legenda e crédito no InDesign, versão 008.
Bibliografia
- FLANAGAN, David. Javascript – The Definitive Guide. 4Th Edition. O’Reilly. Arquivo CHM (html help do Windows).
- KAHREL, Peter. Scripting InDesign with JavaScript. O’Reilly Media, 2006. ISBN: 0-596-52817-5. Comprado pela O’Reilly em formato PDF.
- Adobe InDesign CS2 Scripting Guide. Adobe Systems Incorporated, 2006. Documento PDF.
- JavaScript Tutorial. Site web disponível em: <http://www.w3schools.com/js/default.asp>. Acesso em 10 jul. 2008.
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
Beleza, Elvis! Já vou me inscrever!
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.