Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
bonjour,
comment tester en PB si ghostscript est installé ?
Je voudrais conditionner la possibilité de faire un dw_1.saveas() en format PDF! au fait que ghostcript est accessible.
Merci
Dernière modification par frichmout (14-01-2010 15:22:48)
Hors ligne
Bonjour, "installé" par un setup tu auras un dossier GS dans C:\gs\....
Mais il n'est pas nécessaire de faire l'installation classique pour imprimer en PDF puisqu'il suffit de copier le dossier ghostscript dans le répertoire de l'EXE.
Dans le premier cas, rechercher dans la base de registre :
[HKEY_LOCAL_MACHINE\SOFTWARE\GNU Ghostscript\7.05] "GS_DLL"="C:\\gs\\gs7.05\\bin\\gsdll32.dll" "GS_LIB"="C:\\gs\\gs7.05\\lib;C:\\gs\\fonts"
Dans le second cas, tester la présence du répertoire gs dans celui de l'EXE.
Hors ligne
yes sir, j'ai bien pensé au registryget() mais sur mon poste par exemple, la clef à chercher c'est :
HKEY...\Software\AFPL Ghostscript\8.51
Donc ça peut être très différent suivant le poste...
Mais je retiens ton idée dans mettre un autre dans le répertoire de l'exe, comme ça, en effet, je n'ai même plus besoin de tester !!
Par contre, je ne vois pas bien comment l'appel à gsdll32.dll se fera puisqu'elle se cache dans le sous répertoire gs8.51/bin...
Tu as déjà utilisé cette solution bestiale mais au combien tentante ?
Hors ligne
ça n'a rien de bestial (en fait ça n'est pas dans le répertoire de l'EXE, mais celui de pbdwe115.dll qui est souvent le même...)
When you save a DataWindow object as PDF using the distill method, PowerBuilder searches in the following locations for an installation of GPL or AFPL Ghostscript:
The Windows registry
The relative path of the pbdwe115.dll file (typically Sybase\Shared\PowerBuilder)
The system PATH environment variable
If GPL or AFPL Ghostscript is installed using the Ghostscript executable file, the path is added to the Windows registry.
If the Ghostscript files are in the relative path of the pbdwe115.dll file, they must be installed in this directory structure:
dirname\pbdwe115.dlldirname\gs\gsN.NNdirname\gs\fonts
where dirname is the directory that contains the runtime DLLs and N.NN represents the release version number for Ghostscript.
Hors ligne
Je comprends mieux ta réponse maintenant. Donc si mes postes clients ont une installation de runtime PB standard, il suffit que j'y rajoute une copie de l'arborescence gs/....
Question subsidiaire (que je ne peux tester sur mon poste) :
Que se passe-t-il si ghostscript n'est pas installé et que je lance tout de même, "bestialement" (puisque ça a l'air de te plaire) un dw_1.saveas() au format pdf ?
en tous cas, merci de tes réponses.
Hors ligne
frichmout a écrit:
Question subsidiaire (que je ne peux tester sur mon poste) :
Que se passe-t-il si ghostscript n'est pas installé et que je lance tout de même, "bestialement" (puisque ça a l'air de te plaire) un dw_1.saveas() au format pdf ?
jamais essayé, je suppose que tu récupères un PDF de 0 ko, ou rien du tout
Hors ligne
Je viens d'essayer en renommant temporairement le répertoire GS en GSX.
la fonction saveas() renvoie -1 mais crée un fichier pdf de taille 0 octets.
Ma conclusion personnelle (dans le contexte de ma société où gs est censé être installé par défaut) :
laisser l'utilisateur choisir le format pdf, faire le saveas() et enfin tester le code retour et dire à l'utilisateur qu'il lui manque sans doute le module ghostscript si le saveas a renvoyé -1.
Pour moi, le topic est résolu. Merci encore
Hors ligne