|
Iniciado por Créator1969, nov., 24 2017 10:27 PM - 7 respostas |
| |
| | | |
|
| |
Membro registado 7 mensagems |
|
Publicado em novembro, 24 2017 - 10:27 PM |
Bonjour à toutes et tous, Je suis toujours sur WD17, et je me casse les dents sur l'API de Ghostscript v9.22 J'essaye de splitter des fichiers PDF pour en réorganiser les pages mais je sèche.
iCode, iCode1, DLLInst, GsInst sont des entier système iTemp, iNbParam sont des entier bRetour est un booléen Params est un tableau de chaînes DllPath est une chaîne="c:\Program Files (x86)\gs\gs9.22\bin\gsdll32.dll" DLLInst = ChargeDLL(DllPath) SI DLLInst = 0 ALORS Erreur(ErreurInfo()) FIN
GsInst=API("gsdll32.dll","gsapi_new_instance", &iTemp, Null) SI GsInst >= 0 ALORS
TableauSupprimeTout(Params) TableauAjoute(Params,"-dBATCH") TableauAjoute(Params,"-dNOPAUSE") TableauAjoute(Params,"-sDEVICE=pdfwrite") TableauAjoute(Params,"-o 3d.pdf") TableauAjoute(Params,"1a2.pdf")
iNbParam=TableauOccurrence(Params) iCode=API("gsdll32.dll", "gsapi_init_with_args", iTemp, iNbParam, &Params) iCode1=API("gsdll32.dll", "gsapi_exit",iTemp) FIN
API("gsdll32.dll","gsapi_delete_instance",iTemp) SI iCode = 0 ALORS bRetour=Vrai
iCode me retourne -100
Si quelqu'un à une idée ..
Bonne soirée. |
| |
| |
| | | |
|
| | |
| |
Membro registado 946 mensagems Popularité : +102 (110 votes) |
|
Publicado em novembro, 27 2017 - 12:10 PM |
Bonjour, Voici la traduction de l'exemple fourni sur le site de Ghostscript
hndDLL, code, minst sont des entiers système DllName est une chaîne Params est un tableau de chaînes
DllName = "C:\Program Files\gs\gs9.22\bin\gsdll64.dll"
IF NOT fFichierExiste(DllName) THEN Erreur(ChaîneConstruit("Fichier %1 inconnu ! ", DllName)) RETOUR END
hndDLL = ChargeDLL(DllName) IF hndDLL = 0 THEN Erreur(ChaîneConstruit("Chargement de la dll impossible !", DllName),ErreurInfo()) RETOUR END
code = API(DllName, "gsapi_new_instance", &minst, Null) IF code < 0 THEN DéchargeDLL(hndDLL) RETOUR ELSE Trace("gsapi_new_instance : " + minst) END
code = API(DllName, "gsapi_set_arg_encoding", minst, 1) IF code <> 0 THEN Erreur("Code = " + code) DéchargeDLL(hndDLL) RETOUR ELSE Trace("gsapi_set_arg_encoding : ok") END
TableauSupprimeTout(Params) TableauAjoute(Params, ChaîneVersUTF8("ps2pdf")) TableauAjoute(Params, ChaîneVersUTF8("-dNOPAUSE")) TableauAjoute(Params, ChaîneVersUTF8("-dBATCH")) TableauAjoute(Params, ChaîneVersUTF8("-dSAFER")) TableauAjoute(Params, ChaîneVersUTF8("-sDEVICE=pdfwrite")) TableauAjoute(Params, ChaîneVersUTF8("-sOutputFile=out.pdf")) TableauAjoute(Params, ChaîneVersUTF8("-c")) TableauAjoute(Params, ChaîneVersUTF8(".setpdfwrite")) TableauAjoute(Params, ChaîneVersUTF8("-f")) TableauAjoute(Params, ChaîneVersUTF8("C:\Program Files\gs\gs9.22\examples\alphabet.ps"))
code = API(DllName, "gsapi_init_with_args", minst, Dimension(Params), &Params) IF code <> 0 THEN Erreur("gsapi_init_with_args : " + code) ELSE Trace ("gsapi_init_with_args : ok") code = API(DllName, "gsapi_exit", minst) IF code <> 0 THEN Erreur("gsapi_exit : "+ code) ELSE Trace(("gsapi_exit : ok")) END END
DéchargeDLL(hndDLL)
je récupère bien dans le fichier <fRepEncours()>"\out.pdf" le fichier au format postscript converti |
| |
| |
| | | |
|
| | |
| |
Membro registado 946 mensagems Popularité : +102 (110 votes) |
|
Publicado em novembro, 27 2017 - 1:43 PM |
Pour spliter un fichier pdf de x pages dans x fichiers pdf
TableauSupprimeTout(Params) TableauAjoute(Params, ChaîneVersUTF8("-dBATCH")) TableauAjoute(Params, ChaîneVersUTF8("-dNOPAUSE")) TableauAjoute(Params, ChaîneVersUTF8("-sOutputFile=c:\temp\out%4d.pdf")) TableauAjoute(Params, ChaîneVersUTF8("-sDEVICE=pdfwrite")) TableauAjoute(Params, ChaîneVersUTF8("C:\temp\annots.pdf")) pour extraire de la page 2 à la page 2
TableauSupprimeTout(Params) TableauAjoute(Params, ChaîneVersUTF8("-dBATCH")) TableauAjoute(Params, ChaîneVersUTF8("-dNOPAUSE")) TableauAjoute(Params, ChaîneVersUTF8("-sOutputFile=c:\temp\out.pdf")) TableauAjoute(Params, ChaîneVersUTF8("-dFirstPage=2")) TableauAjoute(Params, ChaîneVersUTF8("-dLastPage=3")) TableauAjoute(Params, ChaîneVersUTF8("-sDEVICE=pdfwrite")) TableauAjoute(Params, ChaîneVersUTF8("C:\temp\annots.pdf")) |
| |
| |
| | | |
|
| | |
| |
Membro registado 7 mensagems |
|
Publicado em novembro, 29 2017 - 6:34 PM |
Bonjour Philippe,
Merci pour le "ChaîneVersUTF8" mon problème est réglé. (J'avais même pas regardé) |
| |
| |
| | | |
|
| | |
| |
Membro registado 7 mensagems |
|
Publicado em dezembro, 03 2017 - 6:33 PM |
Maintenant même problème mais pour concaténer (fusionner) les fichiers
TableauAjoute(Params, ChaîneVersUTF8("-dBATCH")) TableauAjoute(Params, ChaîneVersUTF8("-dNOPAUSE")) TableauAjoute(Params, ChaîneVersUTF8("-q")) TableauAjoute(Params, ChaîneVersUTF8("-sDEVICE=pdfwrite")) TableauAjoute(Params, ChaîneVersUTF8("-sOutputFile=" + cFichierDeSortie)) TableauAjoute(Params, ChaîneVersUTF8(cListe))
Qu'est-ce que je fais de faux ??? |
| |
| |
| | | |
|
| | |
| |
Membro registado 946 mensagems Popularité : +102 (110 votes) |
|
Publicado em dezembro, 04 2017 - 11:37 AM |
bonjour,
TableauAjoute(Params, ChaîneVersUTF8("-dBATCH")) TableauAjoute(Params, ChaîneVersUTF8("-dNOPAUSE")) TableauAjoute(Params, ChaîneVersUTF8("-q")) TableauAjoute(Params, ChaîneVersUTF8("-sDEVICE=pdfwrite")) TableauAjoute(Params, ChaîneVersUTF8("-sOutputFile=c:\temp\out.pdf")) TableauAjoute(Params, ChaîneVersUTF8("c:\temp\f1.pdf")) TableauAjoute(Params, ChaîneVersUTF8("c:\temp\f2.pdf")) |
| |
| |
| | | |
|
| | |
| |
Publicado em março, 18 2024 - 3:56 PM |
Bonjour,
Je sais que c'est 6 ans après. Mais un grand merci Philippe. On ne le dit jamais assez sur Internet. Je viens de basculer mon appli en 64bits (je suis en Windev 2024) et pas moyen de fusionner des PDF avec gsdll64.dll jusqu'à ton message.
Nicolas |
| |
| |
| | | |
|
| | |
| |
Membro registado 797 mensagems Popularité : +40 (42 votes) |
|
Publicado em março, 20 2024 - 4:04 PM |
| |
| |
| | | |
|
| | | | |
| | |
|