#1 Wed 13 August 2008 17:38
- magali di salvo
- Participant actif
- Lieu: Lyon
- Date d'inscription: 21 Sep 2005
- Messages: 70
[MapInfo9.0] Faire des PDF en batch
Bonjour,
je souhaite automatiser une génération de pdf "normalisés" en terme de répertoire et noms à partir d'une liste de .WOR prédéfinie avec mapbasic.
grâce aux précieuses indications trouvées dans d'autres messages du forum sur le sujet, j'ai utilisé dans mapbasic une commande du style :
Set Window FrontWindow() Printer Name "PDFCreator" Orientation LandScape Papersize 8
printwin file "chemin\nom_de_fichier.pdf" overwrite
il crée bien un pdf avec le bon nom au bon endroit, mais impossible de l'ouvrir avec aucun lecteur PDF. un message d'erreur "n'a pas pu ouvrir nom.pdf car le type de fichier n'est pas pris en charge ou est endommagé...."
j'ai essayé aussi avec d'autres générateurs de pdf et aussi acrobat : même topo !
si quelqu'un a la solution ?
merci par avance !
magali di salvo
Hors ligne
#2 Wed 13 August 2008 18:30
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [MapInfo9.0] Faire des PDF en batch
Bonjour
Hypothèse: le batch va plus vite que la fabrication du PDF, qui n'est pas fini (donc inutilisable)
Faire une boucle de 2-3 minutes entre chaque (ou trouver un truc pour que la fabrication du PDF suivant ne démarre pas avant la fin de fabrication du PDF précédent)
Hors ligne
#3 Thu 14 August 2008 08:20
- magali di salvo
- Participant actif
- Lieu: Lyon
- Date d'inscription: 21 Sep 2005
- Messages: 70
Re: [MapInfo9.0] Faire des PDF en batch
Merci Maurice,
je crains que ce ne soit pas ça vu que je teste avec un seul fichier sans boucle et qu'il a donc largement le temps de finir sa manip'...
après reflexion (la nuit porte conseil !), je crois que "printwin" dans un fichier correspond à cocher la case "imprimer dans un fichier" et crée donc un fichier d'impression du genre plt et pas le fichier pdf auquel je m'attend.
je ne vois pas trop comment faire ça tout en automatique avec mapbasic puisque on rentre le nom soit dans acrobat soit dans pdfcreator et qu'on n'est donc plus dans mapinfo...
est-ce seulement possible d'automatiser la génération automatique de pdf avec mapinfo ?
merci d'avance
magali di salvo diren rhone-alpes
Hors ligne
#4 Thu 14 August 2008 08:48
- Damien BEAUSEIGNEUR
- Participant assidu
- Lieu: meyzieu
- Date d'inscription: 5 Sep 2005
- Messages: 425
Re: [MapInfo9.0] Faire des PDF en batch
Bonjour
En fait il y a un moyen de ruser, il faut utiliser les paramètres d'enregistrement automatique de PDFCREATOR.
Créer avec un nom unique. Faire la boucle comme l'indique Maurice.
Avant de passer au suivant, il faut renommer le fichier avec le bon nom et le tour est joué.
ou sinon pour être plus précis mais la il faut l'écrire en vbscript lancer la création d'un fichier vide indiquant que le document est pret. dans les options
Et ensuite renommer le fichier ou le faire directement dans le vbscript
et passer au suivant.
cordialement
Damien
Hors ligne
#5 Thu 14 August 2008 11:34
- didier.bondyfalat
- Participant occasionnel
- Lieu: Nice
- Date d'inscription: 31 Jan 2007
- Messages: 31
Re: [MapInfo9.0] Faire des PDF en batch
Bonjour,
La commande
Code:
PrintWin File "nom de fichier"
génère un fichier postscrip (.ps).
Les versions récentes de PDFCreator permettent de convertir se fichier postscript en pdf en ligne de commande et de supprimer le fichier .ps.
Voici les commandes magiques qui permettent de créer un pdf de la fenêtre courante :
Code:
Dim PathFilenameWithoutExtension As String PathFilenameWithoutExtension = "C:\MonRep\MonFic" PrintWin File PathFilenameWithoutExtension+".ps" Run Program "pdfCreator.exe /IF"""+PathFilenameWithoutExtension+".ps"" /OF"""+PathFilenameWithoutExtension+".pdf"" /DeleteIF"
Attention, le répertoire contenant pdfCreator.exe doit être rajouter à la variable d'environnement path.
Didier Bondyfalat
DDE 06
Hors ligne
#6 Thu 14 August 2008 12:54
- magali di salvo
- Participant actif
- Lieu: Lyon
- Date d'inscription: 21 Sep 2005
- Messages: 70
Re: [MapInfo9.0] Faire des PDF en batch
Merci à tous et particulièrement à didier bondyfalat, sa méthode est tout à fait ce qu'il me fallait !
j'ai adapté comme suit sans ajouter pdfcreator.exe dans la variable PATH et en ajoutant un overwrite (dès fois que...)
Code :
Dim PathFilenameWithoutExtension As String
PathFilenameWithoutExtension = "monrep/monfic"
Set Window FrontWindow() Printer Name "PDFCreator" Orientation LandScape Papersize 8
printwin window frontwindow() File PathFilenameWithoutExtension+".ps" overwrite
Run Program "C:/Program Files/PDFCreator/PDFCreator.exe /IF"""+PathFilenameWithoutExtension+".ps"" /OF"""+PathFilenameWithoutExtension+".pdf"" /DeleteIF"
...en plus j'ai appris qu'on pouvait donc dans mapbasic faire un "run program" pour lancer autre chose...
encore merci,
magali di salvo diren rhone alpes
Hors ligne