Script pour indesign : import PDF

nicole.poutot

Membre confirmé
15 Janvier 2010
13
0
69
Bonjour à tous,

j'ai besoin de réaliser un script pour Indesign et je n'ai aucune connaissance en javascript...

Je dois faire un script qui importe toutes les pages d'un pdf (le nombre de page varie selon les documents ) sur les pages d'un document indesign (dans un bloc image) avec une réduction de 78%.

Volià si quelqu'un peut me donner des pistes, je lui en serais très reconnaissante !

Bonne soirée !

---------- Nouveau message ajouté à 19h35 ---------- Le message précédent a été envoyé à 18h26 ----------

En fait j'ai trouvé un script pour importer toutes les pages d'un pdf dans un doc indesign, donc, c'est déjà bien, mais :
- comment décaler la position du bloc image (par défaut, il les met à (0,0) et moi, j'ai besoin de (-10,-10) pour les fonds perdus.
- comment déterminer une réduction de 78% ou autre ?

D'avance merci !

Voici le script :


//PlaceMultipagePDF.jsx
//An InDesign CS4 JavaScript
/*
@@@BUILDINFO@@@ "PlaceMultipagePDF.jsx" 2.0.0 5-December-2007
*/
//Places all of the pages of a multi-page PDF.
//
//For more on InDesign scripting, go to http://www.adobe.com/products/indesign/scripting/index.html
//or visit the InDesign Scripting User to User forum at http://www.adobeforums.com
//
main();
function main(){
//Make certain that user interaction (display of dialogs, etc.) is turned on.
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;
//Display a standard Open File dialog box.
var myPDFFile = File.openDialog("Choose a PDF File");
if((myPDFFile != "")&&(myPDFFile != null)){
var myDocument, myPage;
if(app.documents.length != 0){
var myTemp = myChooseDocument();
myDocument = myTemp[0];
myNewDocument = myTemp[1];
}
else{
myDocument = app.documents.add();
myNewDocument = false;
}

alert(myDocument.constructor.name);
if(myNewDocument == false){
myPage = myChoosePage(myDocument);
}
else{
myPage = myDocument.pages.item(0);
}
myPlacePDF(myDocument, myPage, myPDFFile);
}
}
function myChooseDocument(){
var myDocumentNames = new Array;
myDocumentNames.push("New Document");
//Get the names of the documents
for(var myDocumentCounter = 0;myDocumentCounter < app.documents.length; myDocumentCounter++){
myDocumentNames.push(app.documents.item(myDocumentCounter).name);
}
var myChooseDocumentDialog = app.dialogs.add({name:"Choose a Document", canCancel:false});
with(myChooseDocumentDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Place PDF in:"});
}
with(dialogColumns.add()){
var myChooseDocumentDropdown = dropdowns.add({stringList:myDocumentNames, selectedIndex:0});
}
}
}
var myResult = myChooseDocumentDialog.show();
if(myResult == true){
if(myChooseDocumentDropdown.selectedIndex == 0){
myDocument = app.documents.add();
myNewDocument = true;
}
else{
myDocument = app.documents.item(myChooseDocumentDropdown.selectedIndex-1);
myNewDocument = false;
}
myChooseDocumentDialog.destroy();
}
else{
myDocument = "";
myNewDocument = "";
myChooseDocumentDialog.destroy();
}
return [myDocument, myNewDocument];
}
function myChoosePage(myDocument){
alert(myDocument.name);
var myPageNames = new Array;
//Get the names of the pages in the document
for(var myCounter = 0; myCounter < myDocument.pages.length;myCounter++){
myPageNames.push(myDocument.pages.item(myCounter).name);
}
var myChoosePageDialog = app.dialogs.add({name:"Choose a Page", canCancel:false});
with(myChoosePageDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Place PDF on:"});
}
with(dialogColumns.add()){
var myChoosePageDropdown = dropdowns.add({stringList:myPageNames, selectedIndex:0});
}
}
}
myChoosePageDialog.show();
var myPage = myDocument.pages.item(myChoosePageDropdown.selectedIndex);
myChoosePageDialog.destroy();
return myPage;
}
function myPlacePDF(myDocument, myPage, myPDFFile){
var myPDFPage;
app.pdfPlacePreferences.pdfCrop = PDFCrop.cropMedia;
var myCounter = 1;
var myBreak = false;
while(myBreak == false){
if(myCounter > 1){
myPage = myDocument.pages.add(LocationOptions.after, myPage);
}
app.pdfPlacePreferences.pageNumber = myCounter;
myPDFPage = myPage.place(File(myPDFFile), [0,0])[0];
if(myCounter == 1){
var myFirstPage = myPDFPage.pdfAttributes.pageNumber;
}
else{
if(myPDFPage.pdfAttributes.pageNumber == myFirstPage){
myPage.remove();
myBreak = true;
}
}
myCounter = myCounter + 1;
}
}
 
Voici un lien vers un autre script, qui te permettra d'obtenir ce que tu veux
Il me semble que c'est le même non ?
Voici le script :
//PlaceMultipagePDF.jsx
//An InDesign CS4 JavaScript

Dans la série pratique tu as aussi celui-ci

Pou définir ton 78%, j' importerai un premier pdf dans la première page lui ferai ma reduc puis dupliquerai cette page le nombre de fois voulu...
A l'import il suffit que l'option de conservation de dimension lors de remplacement de l'image soi bien cochée dans les prefs (et c'est normalement le cas par défaut) et cela devrais aller assez vite ;)
 
Pou définir ton 78%, j' importerai un premier pdf dans la première page lui ferai ma reduc puis dupliquerai cette page le nombre de fois voulu...

Il est plus productif de préciser le pourcentage au moment de l'importation, surtout s'il y a beaucoup de pages.

;)
 
Merci énormément !

C'est parfaitement ce que je cherchais ! ! !:up:

J'utilise donc le script mis en liens par jmlevy qui effectivement marche parfaitement.
Seul truc que je pourrais lui reprocher, il ne créé pas les pages automatiquement.

Pdf placer fonctionne-t-il avec Indesign CS ?

En tout cas merci beaucoup, grace à vous, je vais gagner énormément de temps !

Bon week-end à tous !
:love:

---------- Nouveau message ajouté à 14h23 ---------- Le message précédent a été envoyé à 14h17 ----------

euh désolé, c'est l'inverse...
j'utilise le script de Bediez.
 
Il est plus productif de préciser le pourcentage au moment de l'importation, surtout s'il y a beaucoup de pages.
Effectivement beaucoup plus productif ;)
(je n'avais pas vu la case.. Faut dire que je ne me suis jamais servi de celui-ci en ayant besoin de cette fonctionnalité, elle est pourtant un peu évidente... Pourquoi faire simple ? :))
:up:
 
Perso, ce qui m'échappe, c'est l'utilité d'importer toutes les pages d'un PDF dans un document InDesign...

... je ne vois vraiment pas à quoi ça peut servir ???
(à part à faire des bricolages pas top, pas pro et (surtout) fortement déconseillés !!!)

... mais quelqu'un va peut-être pouvoir m'expliquer ?
 
Exemple type : un livre déjà paru dans un format "normal" et qui ressort en "poche", tu importes en réduction, tu en refais un PDF, et l'imprimeur n'y voit que du feu&#8230;
Non, j'déconne !
:D

C'est vrai qu'en prépresse c'est une man&#339;uvre périlleuse mais ailleurs c'est courant : imagine un document qui doit être délivré avec l'en-tête de plusieurs services ou sociétés, ou bien des grilles de tarifs vierges qui sont remplies en plaquant un tableau par-dessus, etc.

Il y a aussi des imprimeurs qui demandent : 1 page = 1 PDF et qui ensuite (ré)assemblent le tout dans INDD ou QXP&#8230;
(Si, si ! Ca existe, j'en ai vu)

La plupart du temps ce sont des choses que l'on peut faire directement dans Acrobat, mais tout le monde n'a pas Acrobat, et on est encore moins nombreux à connaître les possibilités de cette usine à gaz ce logiciel.

On est souvent gagnant en utilisant les logiciels que l'on connait, ce qui explique certainement la tendance naturelle des utilisateurs a agir ainsi.

:)
 
Exemple type : un livre déjà paru dans un format "normal" et qui ressort en "poche", tu importes en réduction, tu en refais un PDF, et l'imprimeur n'y voit que du feu&#8230;
Non, j'déconne !
Ne le dit pas en rigolant j'ai déjà vu (presque) le cas...

On peut n'avoir également besoin que de certaine choses des pages du dit pdf...
Cela évite la réouverture via un logiciel tiers.

et on est encore moins nombreux à connaître les possibilités de ce logiciel.
Sachant que l'on peut aussi aujourd'hui importer des fichiers Indesign.. dans un doc Indesign ....
Au début ça fait bizarre mais on s'y fait très bien.. ;)
 
Exemple type : un livre déjà paru dans un format "normal" et qui ressort en "poche", tu importes en réduction, tu en refais un PDF, et l'imprimeur n'y voit que du feu…
Non, j'déconne !
:D
C'est bien-sûr faisable, mais c'est du bricolage... plus précisément, importer des PDF dans un doc et en refaire un PDF, ça s'appelle du "re-frying" et c'est fortement déconseillé...

Et puis au lieu de faire une bidouille aussi compliquée, il suffit de flasher directement à l'échelle voulue : tous les logiciels d'imposition un peu évolués sont capables de travailler sur des pages avec un pourcentage d'échelle !



C'est vrai qu'en prépresse c'est une manœuvre périlleuse mais ailleurs c'est courant : imagine un document qui doit être délivré avec l'en-tête de plusieurs services ou sociétés, ou bien des grilles de tarifs vierges qui sont remplies en plaquant un tableau par-dessus, etc.
Là encore, c'est du re-frying et du bricolage : il vaut mieux travailler dans le doc natif.



Il y a aussi des imprimeurs qui demandent : 1 page = 1 PDF et qui ensuite (ré)assemblent le tout dans INDD ou QXP…
(Si, si ! Ca existe, j'en ai vu)
Oui, oui, je sais... là encore, c'est du bricolage qui permet de flasher des PDF sans avoir les outils minimum pour ce travail, et en se faisant bien chier... avec en plus des résultats pas toujours conformes !


Maintenant, techniquement, pour ce genre de "flashage", il y a grosso-modo 2 méthodes :

• soit importer les pages de PDF une par une dans des pages de gabarits d'imposition et flasher les page de gabarits, et dans ce cas ça peut se faire sous INDD ou QXP, mais il faut placer chaque page manuellement à la bonne place, et ce n'est pas possible d'utiliser les scripts que vous avez donnés,


• soit importer les pages de PDF une par une dans des pages d'un doc de même format et imposer ensuite ces pages avec un logiciel d'imposition :
- soit en sortant un PDF pour l'imposer avec par exemple Quite Imposing, ou Preps ou tout autre logiciel d'imposition ou flux travaillant sur du PDF...
... sauf qu'il n'y a aucun intérêt à prendre le risque d'un "re-frying" en important le PDF dans un doc ID/XP pour en refaire un PDF et l'imposer : si il faut imposer un PDF, alors il est plus simple et plus sûr d'imposer le PDF original réduit...

- soit directement dans le logiciel, avec une extension d'imposition du genre INposition (Dynagram) ou ImposerPro pour XPress ou ImposerPro pour InDesign, qui ont été longtemps des méthodes les plus pratiques pour imposer facilement des docs XPress et InDesign...
... sauf que depuis que Quark a racheté ALAP il n'y a plus de soft d'imposition capable d'imposer directement des docs InDesign CS2 (et plus) et donc l'imposition d'un doc peut encore se faire directement avec InDesign CS1...
... mais ne peut plus se faire avec ID CS2 ou CS3 ou CS4 qu'en passant par un PDF intermédiaire... et on revient au "re-frying" de la situation précédente : autant tout de suite imposer le PDF original réduit...



La plupart du temps ce sont des choses que l'on peut faire directement dans Acrobat, mais tout le monde n'a pas Acrobat...
D'abord Acrobat est fourni dans toutes les suites CS contenant au moins InDesign...

... ensuite, faut pas exagérer, Acrobat est quand-même LE MINIMUM requis pour travailler avec des PDF !!! alors quand on veut travailler avec des PDF on commence au moins par acheter Acrobat...
... et si on n'a même pas Acrobat, on ne travaille pas sur des PDF.
 
C'est bien-sûr faisable, mais c'est du bricolage... plus précisément, importer des PDF dans un doc et en refaire un PDF, ça s'appelle du "re-frying" et c'est fortement déconseillé...
Tu vois quand tu veux ! Pour une fois tu en accord total avec Leonard R. (le M. "chef du PDF" de chez Adobe).
:up:

Et puis au lieu de faire une bidouille aussi compliquée, il suffit de flasher directement à l'échelle voulue : tous les logiciels d'imposition un peu évolués sont capables de travailler sur des pages avec un pourcentage d'échelle !
J'en ai connu qui faisaient ça (avec des EPS, pas des PDF) parce-que ça leur permettait d'appliquer une échelle différente en X et en Y&#8230; je te fais grâce de la suite, ça va te mettre de mauvaise humeur !
:D

Là encore, c'est du re-frying et du bricolage : il vaut mieux travailler dans le doc natif.
Pas du tout ! Il en va du PDF comme du papier : nombre d'entreprises et de franchises fournissent à leurs filiales/agences des docs numériques "pré-imprimés".
C'est la fonction "en-têtes & pieds de pages" d'Acrobat, que l'on retrouve également dans tous les autres bons logiciels de traitement des PDF. Ce que certains font aussi avec InDesign ou autres.

D'abord Acrobat est fourni dans toutes les suites CS contenant au moins InDesign...
C'est vrai maintenant mais cela ne l'a pas toujours été.

... ensuite, faut pas exagérer, Acrobat est quand-même LE MINIMUM requis pour travailler avec des PDF !!! alors quand on veut travailler avec des PDF on commence au moins par acheter Acrobat...
Ce n'est pas moi qui va dire le contraire !
;)

... et si on n'a même pas Acrobat, on ne travaille pas sur des PDF.
Oui pour ce qui est du prépresse, dans d'autres métiers c'est (de moins en) moins évident.
 
Seul truc que je pourrais lui reprocher, il ne créé pas les pages automatiquement.

Je fais remonter ce vieux sujet pour éviter de refaire la conversation&#8230;

J'ai vraiment besoin du même script mais qui importe dans les pages existantes (et surtout qui ne crée pas de nouvelle page) car j'aurai plusieurs PDF à importer sur chaque page indesign.

a priori tous ces scripts créent une nouvelle page vierge à chaque import&#8230;
 
Dernière édition: