2010-05-27 3 views
0

Pour un projet, j'ai besoin d'automatiser la création de cartes de visite. Maintenant, ils ont un fichier InDesign pour chaque modèle de carte de visite. Ils insèrent les informations de tous les gens dans le fichier indesign et ensuite générer un pdf de celui-ci.Créer un fichier PDF à partir d'inDesign à l'exécution

Maintenant, entrer les informations des clients dans une application web n'est pas un problème, mais comment vais-je générer un pdf et comment vais-je modifier le fichier indesign lors de l'exécution?

Je pense que modifier le fichier indesign ne sera pas possible par programme?

Pourrais-je générer un pdf à partir de l'indesign avec un modèle de carte dedans. Au moment de l'exécution, je voudrais copier la carte dans le pdf x nombre de fois. Ensuite, je devrais injecter l'information des gens (nom, adresse, ...)?

Qu'est-ce possible ici?

La finale pdf est utilisé par une machine qui crée automatiquement les cartes de visite, les coupe, ...

Répondre

4

Vous pouvez automatiser quoi que ce soit à peu près en utilisant le support de script intégré dans InDesign. Dans l'interface graphique InDesign, vous pouvez affecter des étiquettes de script à divers éléments, tels que des blocs de texte, dans votre document InDesign. Si, par exemple, souhaitez remplacer un texte dans un cadre de texte que vous pouvez appliquer quelque chose comme ça en Javascript (CS4 et ci-dessous, voir la note ci-dessous):

var document = app.open(File("path to your InDesign file"), false); 
var textFrame = document.pageItems.item("your script label"); 
var story = textFrame.parentStory; 
story.contents = "your new content" 

Pour créer un fichier PDF que vous faites quelque chose comme ça :

var pdfFile = new File("path to your pdf"); 
document.exportFile(ExportFormat.PDF_TYPE, pdfFile); 

Ceci était juste quelques exemples de ce que vous pouvez faire, j'espère que c'était un peu utile. Si vous ne savez pas comment installer et exécuter des scripts dans InDesign, this blog post explique le processus. Vous pouvez trouver une bonne référence de script en ligne here. Si je comprends bien, vous souhaitez exécuter vos scripts en traitement par lots. Si tel est le cas, je vous recommande de consulter InDesign Server. Il s'agit essentiellement de la version de bureau d'InDesign mais sans l'interface graphique et avec une interface de service Web simple. Il fonctionne également en tant que service Windows (ou l'équivalent sur d'autres plates-formes). REMARQUE: à partir de CS5, vous ne pouvez plus identifier un bloc de texte par son étiquette de script, comme illustré ci-dessus. There's some discussion about it here. La meilleure alternative est d'utiliser itemByName (nom) au lieu de item, le nom étant le nom sur la palette des calques. Cela peut être modifié dans l'interface graphique en effectuant un really slow double click sur l'élément dans la palette des calques. Ou, this workaround définit le nom de chaque cadre de texte pour être égal à son étiquette de script. Ensuite, tout ce que vous avez à faire pour modifier le contenu du cadre de texte est le suivant:

document.textFrames.itemByName("shmullus").contents = "The Doctor"; 
+0

L'ouverture d'un fichier InDesign est-elle également possible en C#? Ou est le fichier InDesign fondamentalement xml? –

+1

Au moins dans InDesign CS3, il s'agit d'un format binaire propriétaire. Je ne sais pas si CS4 ou CS5 utilise un format xml, mais j'en doute. En théorie, vous pouvez bien sûr modifier les fichiers de C# sans InDesign, mais vous devez ensuite désosser le format de fichier. Une meilleure option consiste à utiliser l'API de service Web fournie pour envoyer des scripts Javascript à InDesign Server à partir de votre application C#. –

+1

CS4 et CS5 utilise également un format binaire. Il est possible de sauvegarder les fichiers InDesign en tant que .idml qui est un format xml, mais même si vous pouviez changer cela, il n'y a pas de moyen facile de convertir ces fichiers en PDF sans utiliser InDesign. – MatsT

Questions connexes