FIXER IMPRIMANTE COURANTE(PDFCreator Nom imprimante) ne fonctionne pas

Mon but est de generer des documents en PDF.
Je suis en local, Windows Pro SP1, 4D v13 et PDF Creator 2.5.
Je fais des tests avec Lire imprimante courante, mais FIXER IMPRIMANTE COURANTE(PDFCreator Nom imprimante) ne change rien, et le OK reste a 0.
Quand je teste avec d’autres imprimantes, ca fonctionne.
Je soupconne une incompatibilite avec la derniere version de PDFCreator, ou un reglage mal choisi.
Si quelqu’un a une idee�c
Ca m’ennuie d’obliger l’utilisateur a changer son imprimante par defaut (dans ce cas tout fonctionne, evidemment).

Il y a effectivement des incompatibilites entre PDFcreator 2.5 et 4D. Il faut normalement utiliser la version 1.7.3 de PDFcreator (tu la trouvera surement sur le site SourceForge). Cette version stable fonctionne parfaitement avec 4D.

Je n’ai pas eu l’occasion de tester son fonctionnement avec la v13. Il faudrait regarder les matrices de compatibilites 4D.

Sinon, une remarque, j’ai reussi a faire fonctionner PDFcreator 2.5 avec la v15 de 4D sous windows 7 sans trop de soucis notable.

Bon courage

Merci du tuyau.
Je vais tester avec la v 1.7.3.
Le probleme, est que mon client est une grosse boite et que les utilisateurs n’ont pas la main pour choisir les versions des softs qu’ils ont sur leur PC. C’est le grand manitou de la DSI qui a la main.
Il reste quand meme la solution de modifier manuellement l’imprimante par defaut.

D’accord
Il y a peut une solution pour les utilisateurs : l’utilisation de PDFcreator version portable. Je ne sais pas si ca fonctionne ou pas, je n’ai jamais essaye. Mais il est possible de recuperer des versions portable de quasiment tous les logiciels, ces versions ne necessitent aucune installation (souvent un decompactage dans un dossier auquel l’utilisateur a tous les droits), peut etre que ca peut fonctionner

Effectivement, avec la 1.7.3, ca marche.
Typiquement un probleme quand on utilise un logiciel tierce qui suit son bonhomme de chemin, et qui n’est plus compatible.

D’accord. Effectivement… Une autre solution pourrait etre de ton cote, passer en v15 et essayer avec PDFcreator 2.5. Comme je te l’ai dit, j’ai reussi a la faire fonctionner (meme si 4D ne recommande pas cette version) avec un windows 7.
Bon je ne garanti pas que toutes les options soient fonctionnelles par contre, je n’ai pas eu l’occasion de tout tester.

Je ne peux pas faire passer mon client en V15, pour l’instant.
Par contre, j’avais prevu au debut de ma methode un test pour verifier que le client avait bien une imprimante PDFCreator installee.
Serait-il possible d’aller plus loin et de recuperer le numero de la version installee, pour verifier que c’est bien la 1.7.3?

Je n’ai pas de bout de code a te donner, mais oui c’est probablement possible… en bidouillant quelque chose.
Il faudrait rechercher dans le dossier d’installation de l’ordinateur si PDFcreator 1.7.3 est installe.
Je ne pense pas que 4D permette d’obtenir la version d’un logiciel installe sur le PC (il faudrait demander l’avis a des connaisseurs…) donc il faut des methodes de bidouillage qui cherchent dans le nom de fichiers, ou dans les fichiers txt. Ca me parait assez fastidieux comme methode :-?

Une solution bien plus simple m’est revenu…
Pour avoir la version de PDFcreator :

<code 4D>
GET PRINT OPTION(“PDFInfo:Version”;$numVersion)

</code 4D>
Il te reste a tester si $numVersion=1.7.3 ou pas (attention, il y a peut etre des autres numeros qui suivent le 3)

Effectivement, merci encore, je n’avais pas vu cette option.
J’ai resolu mon probleme de maniere tres pragmatique.
Plusieurs tests au depart :
<code 4D>
LISTE IMPRIMANTES(vtabnom;vtabempl;vtabmodel)
Au cas ou
: (sous windows )
$cher:=Chercher dans tableau(vtabnom;"@pdfcreator@")
Si ($cher#(-1))
FIXER IMPRIMANTE COURANTE(PDFCreator Nom imprimante)
$nom_imprim:=Lire imprimante courante
Si ($nom_imprim=PDFCreator Nom imprimante)
<>continu:=Vrai
Sinon
<>continu:=Faux
ALERTE(“Veuillez selectionner PDFCreator comme imprimante par defaut et relancer l’appli”)
QUITTER 4D
Fin de si
Sinon
<>continu:=Faux
ALERTE(“PDF Creator pas installe - operation impossible”)
Fin de si
Fin de cas

</code 4D>

Et bien je t’ecris rapidement une version qui devrait etre plus aboutie que la tienne et qui peut t’aider. Je ne l’ai pas teste c’est ecrit de tete, mais je pense que c’est good.
La les trois cas sont distingues (pas besoin de PDFcreator sur Windows10). Reste a ta charge de tester sur quel systeme se trouve l’utilisateur

(desole je developpe en anglais)

<code 4D>
Case of

: (WindowsAnterieur)
SET CURRENT PRINTER(PDFCreator Printer name)
If (ok=1)
GET PRINT OPTION(“PDFInfo:Version”;$numVersionPDFcreator)

If ($numVersionPDFcreator=“1.7.3@”)
//Fixer les options d’impression si necessaire
OPEN PRINTING JOB
//Les trucs a imprimer
CLOSE PRINTING JOB
Else
//La version de PDFcreator n’est pas la bonne
ALERT(“Votre version de PDFcreator ne convient pas. Installez la version 1.7.3”)
End if

Else
//PDFcreator n’est pas installe
ALERT(“Veuillez installer PDFcreator version 1.7.3”)
End if

: (Windows 10)
ARRAY TEXT($lesImprimantes;0)
PRINTERS LIST($lesImprimantes)
$nomImprimante:=“Microsoft Print to PDF” // depuis windows 10 uniquement

If (Find in array($lesImprimantes;$nomImprimante)=No current record)
ALERT(“impossible de trouver l’imprimante “Microsoft Print to PDF””)
Else
SET CURRENT PRINTER($nomImprimante)
If (ok=1)
//Fixer les options d’impression si necessaire
OPEN PRINTING JOB
//Les trucs a imprimer
CLOSE PRINTING JOB
End if
End if

: (Mac)
//Sur MAC c’est tellement plus simple… une unique commande pour imprimer dans un fichier PDF
SET PRINT OPTION(Destination option;3;$cheminAccesPDF)
OPEN PRINTING JOB
//Les trucs a imprimer
CLOSE PRINTING JOB

End case

</code 4D>

Merci encore de ta sollicitude, je n’ai encore aucun client sous windows 10, le milieu des TP est tres conservateur�c
Ils sont sous windows 7 depuis pas tellement longtemps.
Et il doit y avoir quelques XP qui trainent.
Je garde donc sous le coude.
Et ca peut servir a d’autres sur le forum.

Mais derien, c’est le but du forum :slight_smile:
Oui cette armature de base peut servir, mais elle est certainement a completer selon ses envies