forum
assine
anuncie
extras



webpower
macmania

Automatize o seu QuarkXPress

A Apple é um barato, é isso e é aquilo, mas vacilou em um pequeno detalhe. Quando fez o SimpleText, não o fez "scriptável".

Resumindo: se quiséssemos brincar com texto e scripts no Mac, não daria pra usar o SimpleText. Como resultado, a comunidade que queria trabalhar seriamente com texto foi obrigada a se servir do Microsoft Word, que era a única aplicação que mexia com texto e aceitava scripts. Isso, claro, até o advento do QuarkXPress.

O Quark recebeu elogios enormes de todo o mundo técnico quando apareceu, não somente porque era uma alternativa ao PageMaker, mas principalmente devido ao excelente suporte a scripting que proporcionava. E que, aliás, ainda proporciona. Conseqüentemente, dá para usar scripts em texto e em paginação também, jogando com cores, tamanhos, formatos, fotos etc., automatizando totalmente o Quark.

A minha versão do Quark é a 3.32. Portanto, os scripts que vou mostrar funcionarão com certeza nessa versão. Como o AppleScript não muda muito de versão pra versão, as versões mais novas do Quark deverão rodar os scripts numa boa. Só não posso garantir que todos os scripts funcionarão nas versões anteriores.

Junto com o Quark vem uma pasta chamada For Advanced Scripting, que inclui documentos que explicam a melhor maneira de fazer scripts para Quark, mais um arquivo chamado Document Construction, que desde a versão 3.2 serve pra dar uma idéia de como usar scripts para acelerar o trabalho no Quark. Nós vamos seguir esse documento passo-a-passo e entender como as coisas funcionam. Depois disso, fazer scripts para o Quark vai depender apenas da sua própria vontade.

Então, sem mais delongas: vamos construir um documento!

Linhas 1-2 - São aquelas linhas que você já conhece, para abrir o QuarkXPress (se já não estiver aberto) e chamá-lo para primeiro plano.

Linha 3 - Lembra-se do comando set? Serve pra criar uma variável. Este, no caso, está criando uma variável chamada thepath e dando a ela o conteúdo ":". Você, que está esperto, já entendeu que thepath provavelmente guarda o caminho para uma pasta, e no momento está vazio. Como eu sei que é para uma pasta? Porque "termina" com o sinal de dois pontos (:) - lembra a aula passada?

Linhas 5-18 - Este tell está aí para definir como será o documento que ainda não foi criado. Note que o alvo do comando é default document 1, que significa o documento "padrão" a ser criado, mas somente o primeiro. Algumas linhas servem para definir algumas variáveis, e as últimas, para definir algumas características de documento do Quark, como se haverá caixa de diálogo automática, por exemplo.

Linha 19 - Ô, seu Quark! Faz um documento aí! oLinhas 21-23 - O script usa o tell de uma maneira diferente. Em vez de o alvo ser um programa, o alvo do tell é o document 1, o criado pelo make document da linha anterior. Como default, o Quark cria documentos em ordem numérica. Então, se criássemos outro documento a essa altura, teríamos que nos referir ao recém-criado como document 2. Estamos ajustando a propriedade view scale do primeiro documento, portanto.

Linha 25 - É um comentário para que outras pessoas, ao lerem o script, entendam o que está acontecendo.

Linhas 26-31 - O tell e o end tell você já sabe o que fazem. Na linha 27 começam a aparecer coisas interessantes. Parênteses!
Parênteses são seus amigos. Parênteses são legais. Parênteses são gente boa. Se você tiver que escolher entre sair sexta-feira à noite ou usar parênteses, fique em casa! Hã, desculpe, me empolguei um pouco… Voltando ao assunto, repare como os parênteses separam bem os dois comandos amontoados na linha 27. É isso aí. O que está dentro dos parênteses é um comando, cujo resultado é passado para a variável newcolorspec. Daí por diante, é só definir que a cor será CMYK, o valor da cor (em porcentagens de Cyan, Magenta, Yellow e Black) e o nome, usando (quem adivinha?) o comando set.

Linhas 32-41 - Agora nós faremos algo que todo mundo que trabalha com diagramação tem que fazer, e que talvez seja uma das coisas mais simples e úteis que os scripts podem fazer para você no Quark. É simplesmente muito fácil fazer guias usando scripts. Também é simples, mais tarde, movimentar as guias verticais e horizontais para onde for conveniente. Observe que algumas dessas guias são criadas at beginning e outras at end. O seu dever de casa da aula de hoje é descobrir por quê. A dica é prestar atenção ao parâmetro que é passado para o comando make. Lembra de quando mencionei parâmetros? É o que vem depois do with. Se, mesmo assim, ainda não deu para pegar, lembre-se que você sempre pode consultar o dicionário do Quark para tirar a dúvida.

No mês que vem vamos seguir o resto do script até o final, aprendendo a criar caixas de texto e de imagens e, se tudo correr bem e ninguém nos escrever dizendo que esta coluna está andando rápido demais, logo estaremos deixando todos os pecezistas das proximidades estupefatos. Afinal de contas, qualquer um pode falar com seu computador. Só que os Macs respondem. E com coerência, ainda por cima!

Mauricio L. Sadicoff
Mandou aquele verde quando falou de escreverem pra Macmania criticando, esperando do coração que algum caridoso leitor escreva dizendo "nada disso, a coluna está ótima!"


Listagem do script

..Document Construction.. 

tell application ..QuarkXPress® 3.2..
	activate
	set thepath to ..:..
	
	tell default document 1
		set oldHeight to page height
		set oldWidth to page width
		set oldAutoTextBox to automatic text box
		set oldGuidesShowing to guides showing
		set xDocMeasure to horizontal measure
		set yDocMeasure to vertical measure
		set page height to ..30 cm..
		set page width to ..34 cm..
		set automatic text box to false
		set guides showing to true
		set horizontal measure to centimeters
		set vertical measure to centimeters
	end tell
	make document at beginning
	
	tell document 1
		set view scale to fit page in window
	end tell
	
	-CRIANDO A COR ..PURPURA-MONTANHA...
	tell document 1
		set newcolorspec to (make color spec at beginning)
		set color type of newcolorspec to CMYK type
		set CMYK color value of newcolorspec to {4.58745E+4, 4.58745E+4, 0, 0}
		set name of newcolorspec to ..Mountain Purple..
	end tell
	
	-CRIANDO GUIAS PARA ELEMENTOS NA PÁGINA
	tell page 1 of document 1
		make horizontal guide at beginning with properties {position:..4.218 cm..}
		make horizontal guide at end with properties {position:..8.447 cm..}
		make horizontal guide at beginning with properties {position:..27.152 cm..}
		make vertical guide at end with properties {position:..2 cm..}
		make vertical guide at end with properties {position:..4.962 cm..}
		make vertical guide at end with properties {position:..18.742 cm..}
		make vertical guide at end with properties {position:..32 cm..}
	end tell
	
	-CREATE FIRST TEXT BOX.
	tell page 1 of document 1
		make text box at beginning with properties {bounds:{..2 cm.., ..5 cm.., ..8 cm.., ..19 cm..}}
		tell text box 1
			set vertical justification to bottom justified
			set color to ..none..
		end tell
	end tell
	
	tell story 1 of text box 1 of page 1 of document 1
		set contents of it to ..Biking Gear..
		set font to ..Times..		set size of word 1 to 30
		set style of word 1 to all caps
		set base shift of word 1 to 60
		set track of word 1 to 50
		set kern of last character of word 1 to -100
		set size of word 2 to 120
		set color of word 2 to ..Mountain Purple..
		set style of word 2 to italic
		set kern of character 1 of word 2 to -5
		set kern of character 2 of word 2 to -5
	end tell
	
	-CREATE SECOND TEXT BOX.
	tell page 1 of document 1
		make text box at end with properties {bounds:{..8.5 cm.., ..5 cm.., ..29.959 cm.., ..18.472 cm..}}
		tell text box 2
			try
				set story 1 to alias (thepath & ..ASB Text..)
			on error
				set story 1 to (choose file with prompt ..Please select the file \.... & ..ASB Text.. & ..\....)
			end try
			set size of story 1 to 11
			set leading of story 1 to 43
			set justification of story 1 to fully justified
			set font of story 1 to ..Times..
		end tell
		tell paragraph 1 of story 1 of text box 2
			set drop cap characters to 1
			set drop cap lines to 3
			set color of character 1 of word 1 to ..Mountain Purple..
		end tell
		tell last paragraph of story 1 of text box 2
			set rule on of rule above to true
			set text length of rule above to true
			set width of rule above to 0.5
			set position of rule above to ..1 cm..
			set color of rule above to ..Cyan..
			set shade of rule above to 100
		end tell
	end tell
	
	-CREATE FIRST PICTURE BOX.
	tell page 1 of document 1
		make picture box at beginning with properties {bounds:{..10.386 cm.., ..20.758 cm.., ..27.636 cm.., ..33.508 cm..}, color:..none..}
		tell picture box 1
			set rotation to -25
			try
				set image 1 to alias (thepath & ..Shirts.TIFF..)
			on error
				set image 1 to (choose file with prompt ..Please select the file \.... & ..Shirts.TIFF.. & ..\....)
			end try
			tell image 1
				set scale to {..115.., ..115..}
			end tell
		end tell
	end tell
	
	-CREATE SECOND PICTURE BOX.
	tell page 1 of document 1
		make picture box at end with properties {bounds:{..8.471 cm.., ..2 cm.., ..9.971 cm.., ..3.5 cm..}, color:..none..}
		tell picture box 2
			try
				set image 1 to alias (thepath & ..Glove.TIFF..)
			on error
				set image 1 to (choose file with prompt ..Please select the file \.... & ..Glove.TIFF.. & ..\....)
			end try
			set bounds of image 1 to exact fit
		end tell
		duplicate picture box 2 to after picture box 2
		tell picture box 3
			set bounds to {..12.471 cm.., ..2 cm.., ..13.971 cm.., ..3.5 cm..}
		end tell
		duplicate picture box 2 to after picture box 3
		tell picture box 4
			set bounds to {..16.471 cm.., ..2 cm.., ..17.971 cm.., ..3.5 cm..}
		end tell
		duplicate picture box 2 to after picture box 4
		tell picture box 5
			set bounds to {..20.471 cm.., ..2 cm.., ..21.971 cm.., ..3.5 cm..}
		end tell
	end tell
	
	-CREATE THIRD PICTURE BOX.
	tell page 1 of document 1
		make picture box at end with properties {bounds:{..6.875 cm.., ..18.425 cm.., ..12.729 cm.., ..26.4 cm..}, color:..none..}
		tell picture box 6
			try
				set image 1 to alias (thepath & ..Helmet.TIFF..)
			on error
				set image 1 to (choose file with prompt ..Please select the file \.... & ..Helmet.TIFF.. & ..\....)
			end try
			tell image 1
				set scale to {..70.., ..70..}
				set offset to {..0.557 cm.., ..1.254 cm..}
			end tell
		end tell
	end tell
	
	-CREATE LINES
	tell page 1 of document 1
		make line box at beginning with properties {left point:{..0 cm.., ..21.406 cm..}, right point:{..8 cm.., ..21.406..}}
		tell line box 1
			set color to ..Magenta..
			set width to 3
			set style to dotted line
		end tell
		make line box at end
		tell line box 2
			set left point to {..8 cm.., ..2 cm..}
			set right point to {..8 cm.., ..32 cm..}
			set width to 0.5
		end tell
	end tell
	
	set guides showing of document 1 to false
	save document 1 in (thepath & ..Constructed Document..)
	
	tell default document 1
		set page height to oldHeight
		set page width to oldWidth
		set automatic text box to oldAutoTextBox
		set guides showing to oldGuidesShowing
		set horizontal measure to xDocMeasure
		set vertical measure to yDocMeasure
	end tell
end tell


 

Volta para a capa