Script 4.12 : Conversion PDF multipage en plusieurs fichiers Illustrator

Transcription

Script 4.12 : Conversion PDF multipage en plusieurs fichiers Illustrator
AIC04.12_FRQA
21/1/03
12:22 PM
Page 1
L'impossibilité d'ouvrir dans Illustrator 10 plus d'une page de fichier PDF à la
fois est source de frustration pour nombre d'entre nous. Ceux d'entre vous qui
travaillent périodiquement avec des fichiers PDF multipages sont sans aucun
doute confrontés à cette limitation de l'application. Je ne peux qu'imaginer
comment vous êtes parvenu à contourner cet obstacle. Vous avez peut-être l'air
très concentré tandis que vous passez en pilote automatique, ouvrez le fichier à
partir de la barre de menus (voir la figure 4.34), puis choisissez le numéro de
la page dans la boîte de dialogue qui s'affiche dans Illustrator lors de l'ouverture d'un fichier PDF multipage (voir la figure 4.35). Vous devrez ensuite
choisir Fichier > Enregistrer sous, puis le nom du fichier Illustrator à créer qui
contiendra la page active du fichier PDF. Vous répéterez enfin cette procédure
pour toutes les autres pages du fichier. Ça se passe de commentaire !
Script 4.12 prend la relève une fois que vous avez ouvert une page du fichier
PDF dans Illustrator, comme illustré à la figure 4.36. Une fois qu'il a détecté
l'emplacement du fichier PDF sur votre disque dur, Script 4.12 exécute
automatiquement toutes les étapes énoncées au paragraphe précédent.
L'exécution de scripts simplifie réellement votre travail. La figure 4.37 montre
les résultats de votre script après l'enregistrement d'un fichier Illustrator pour
chacune des trois pages du fichier PDF pilote.
CONSEIL Pour créer le projet Visual Basic de mise en route pour ce
script, suivez la procédure décrite pour Script 4.2 à la figure 4.4.
Figure 4.34 Sélectionnez
le fichier PDF à ouvrir avant
l'exécution du script. Dans
votre exemple, la boîte de
dialogue Ouvrir illustre le
fichier PDF que vous vous
apprêtez à ouvrir.
4 : INSTRUCTIONS DE SCRIPTS POUR ILLUSTRATOR : SCRIPT 4.12 : CONVERSION PDF MULTIPAGE EN PLUSIEURS FICHIERS ILLUSTRATOR
Script 4.12 : Conversion PDF multipage en
plusieurs fichiers Illustrator
1
AIC04.12_FRQA
21/1/03
12:22 PM
Page 2
Figure 4.35 Illustrator (sur Mac OS) n'ouvre
qu'une seule page d'un fichier PDF à la fois. Cette
boîte de dialogue qui s'affiche à chaque fois qu'un
utilisateur tente d'ouvrir un fichier PDF multipage
dans Illustrator permet d'indiquer la page à
ouvrir. Votre script ignore cette boîte de dialogue.
EXÉCUTION DE SCRIPTS ADOBE ILLUSTRATOR
Figure 4.36 Page 1 du
fichier PDF pilote utilisé
(document Lisez-moi
Illustrator au format PDF),
illustré dans Illustrator.
2
Figure 4.37 Une fois le script exécuté, le dossier d'origine
du fichier PDF contient un fichier Illustrator distinct
regroupant chacune des pages PDF. Le cas échéant, trois
documents correspondent aux trois pages du fichier PDF
d'origine.
AIC04.12_FRQA
21/1/03
12:22 PM
Page 3
AppleScript
La partie principale du script constitue une boucle repeat contenue
dans une instruction try. Le nombre de pages du fichier PDF étant
indéterminé, la boucle place les numéros 1 à 1000 de manière séquentielle dans la variable myPage. Le script tente d'ouvrir le fichier PDF avec
le nombre de pages actuellement spécifié dans la boucle. Lorsque la variable myPage dépasse le nombre réel de pages du fichier PDF, Illustrator
génère une erreur, laquelle déclenche l'instruction try et déplace l'exécution du script à la ligne qui suit l'instruction end try.
Enfin, le script rétablit l'interaction de l'utilisateur au niveau qui était
défini avant son exécution.
AppleScript
tell application “Adobe Illustrator 10”
if (count of documents) > 0 then
C'est ici qu'est
enregistré puis
modifié le niveau
d'interaction de
l'utilisateur pour
Illustrator.
set myInteractLevel to user interaction level
set user interaction level to never interact
set myPath to file path of document 1 as string
if myPath ends with “.pdf” then
try
repeat with myPage from 1 to 1000
open alias myPath with options {page:myPage}
set myNewPath to myPath
La boucle repeat
principale tente
d'ouvrir chacune
des pages du
fichier PDF,
jusqu'à la 1000e.
repeat with myCharNum from (count of characters of
myNewPath) to 1 by -1
if character myCharNum of myNewPath = “.” then
if myCharNum > (count of characters of
myNewPath) - 5 then set myNewPath to
(text of characters 1 thru (myCharNum - 1)
of myNewPath) as string
exit repeat
end if
end repeat
4 : INSTRUCTIONS DE SCRIPTS POUR ILLUSTRATOR : SCRIPT 4.12 : CONVERSION PDF MULTIPAGE EN PLUSIEURS FICHIERS ILLUSTRATOR
Conseils sur le script Ce script débute par une série d'étapes préparatoires telles que la confirmation de l'existence d'au moins un document ouvert dans Illustrator. L'actuelle propriété décrivant le niveau
d'interaction de l'utilisateur de l'application Illustrator est ensuite
stockée dans une variable, ce qui permettra de la restaurer ultérieurement. C'est alors que le niveau d'interaction est modifié pour éviter
que les boîtes de dialogue n'apparaissent lors de l'ouverture par le
script des diverses pages du document PDF. Le script détermine le
chemin d'accès complet vers le document Illustrator de premier plan
et confirme son type de fichier (PDF) en cochant l'extension de fichier
correspondante.
3
AIC04.12_FRQA
21/1/03
12:22 PM
Page 4
set myNewPath to myNewPath & myPage & “.ai”
AS, suite.
save document 1 in file myNewPath as Illustrator
close document 1 saving no
end repeat
end try
end if
set user interaction level to myInteractLevel
end if
end tell
Visual Basic
EXÉCUTION DE SCRIPTS ADOBE ILLUSTRATOR
Conseils sur le script Ce sous-programe Command1_Click() débute par
une série d'étapes préparatoires telles que la déclaration des variables
et la confirmation de l'existence d'un document ouvert dans Illustrator.
L'actuelle propriété décrivant le niveau d'interaction de l'utilisateur de
l'application Illustrator est ensuite stockée dans une variable, ce qui
permettra de la restaurer ultérieurement. C'est alors que le niveau
d'interaction est modifié pour éviter que les boîtes de dialogue n'apparaissent lors de l'ouverture par le script des diverses pages du
document PDF. Le script détermine le chemin d'accès complet vers le
document Illustrator de premier plan et confirme son type de fichier
(PDF) en cochant l'extension de fichier correspondante.
4
La partie principale de ce script constitue une boucle For...Next qui
suit une instruction On Error GoTo. L'instruction On Error instruit le
script de passer à l'étiquette AllDone dans le script en cas d'erreur.
Cette technique de gestion des erreurs joue en votre faveur puisque
le nombre de pages du fichier PDF est indéterminé ; la boucle place
ainsi les numéros 1 à 1000 de manière séquentielle dans la variable
myPage. Le script tente alors d'ouvrir le fichier PDF avec le nombre de
pages actuellement spécifié dans la boucle. Lorsque la variable myPage
dépasse le nombre réel de pages du fichier PDF, Illustrator génère une
erreur, laquelle déclenche l'instruction On Error GoTo et déplace l'exécution du script à la ligne qui suit l'étiquette AllDone.
AIC04.12_FRQA
21/1/03
VBScript
12:22 PM
Page 5
Option Explicit
Dim myApp As New Illustrator.Application
Dim myPDFOptions As New Illustrator.PDFOpenOptions
Dim myInteractLevel, myPath, myPage, myNewPath
If myApp.Documents.Count > 0 Then
Le script détermine ici le chemin
d'accès complet
vers le document
Illustrator de
premier plan et
confirme son type
de fichier (PDF) en
cochant l'extension de fichier
correspondante.
myInteractLevel = myApp.UserInteractionLevel
myApp.UserInteractionLevel = aiDontDisplayAlerts
myPath = myApp.Documents(1).FullName
If Right(myPath, 4) = “.pdf” Then
On Error GoTo AllDone
For myPage = 1 To 1000
myPDFOptions.PageToOpen = myPage
myApp.Open myPath, , myPDFOptions
myNewPath = myPath
La boucle principale tente d'ouvrir
chacune des
pages du fichier
PDF, jusqu'à la
1000e.
If InStrRev(myPath, “.”) > Len(myPath) - 5 Then
myNewPath = Mid(myPath, 1, InStrRev(myPath, “.”)
- 1)
End If
myNewPath = myNewPath & myPage & “.ai”
myApp.Documents(1).SaveAs myNewPath
myApp.Documents(1).Close (aiDoNotSaveChanges)
Next
AllDone:
C'est ici qu'est
rétabli le niveau
d'interaction de
l'utilisateur
d'Illustrator tel
qu'il était avant
l'exécution du
script.
End If
myApp.UserInteractionLevel = myInteractLevel
End If
End Sub
4 : INSTRUCTIONS DE SCRIPTS POUR ILLUSTRATOR : SCRIPT 4.12 : CONVERSION PDF MULTIPAGE EN PLUSIEURS FICHIERS ILLUSTRATOR
Private Sub Command1_Click()
5