Probleme avec FIXER IMPRIMANTE COURANTE sous window 10

Product :4D - 4D Server
4D : v13.2
OS : Windows XP et 10

Bonjour,

J’ai un problème avec FIXER IMPRIMANTE COURANTE(PDFCreator Nom imprimante) sur XP cette fonction marche impeccable et rend OK = 1
alors que sur Window 10 cela ne fonctionne pas et rend OK = 0 ?

merci de votre aide

Ça ne répond pas à la question mais sur W10 l’impression PDF est native: pas besoin de PDFCreator.

C’est toujours la version 1.7 ?

Ok mais imprimant à partir de 4D write comment indiquer pour imprimer en PDF sachant que l’on peut pas utiliser sur PC

WR FIXER OPTION IMPRESSION (zoneWrite;wr option destination;wr vers fichier PDF;0;$chemin)

wr option destination (9) : passez dans valeur1 l’une des constantes suivantes : wr vers imprimante (1), wr vers fichier (2)
(fichier pour PC, PS pour Mac) ou wr vers fichier PDF (3) (Mac OS uniquement).

Le pilote PDF de windows 10 est vu comme une imprimante.

En faisant cela, tu devrais pouvoir t’en sortir :
lire l’imprimante courante
fixer l’imprimante pdf de W10
imprimer
remettre l’imprimante initiale en tant qu’imprimante courante

Patrick

Avec la recherche sur le forum avec “pdf windows 10”, j’ai trouvé cela :

http://forums.4d.com/Post/FR/18758234/1/18761684#18761684

Il y a même le code qui fonctionne :wink:

merci

je vais tester mais quelle galère en espérant que

FIXER IMPRIMANTE COURANTE($pdfprintername)//imprimante PDF de W10

fonctionne

Il faut différencier 3 cas :

<code 4D>

//Liste d’imprimante
ARRAY TEXT($tabImprimante;0)
PRINTERS LIST($tabImprimante)

Case of
:(MacOS)// Mac
SET PRINT OPTION(Destination option;3;$cheminDestination)
WR FIXER OPTION IMPRESSION(zoneWrite;wr option destination;wr vers fichier PDF;0;$cheminAccesPDF)
WR EXECUTER COMMANDE(zoneWrite;wr cmd figer références)
WR IMPRIMER(zoneWrite;wr impression valeurs;1)

:(windows10)// windows 10
imprimanteCourante:=“Microsoft Print to PDF”
If (Find in array($tabImprimante;imprimanteCourante)>0)
SET CURRENT PRINTER(imprimanteCourante)
If (ok=1)
WR FIXER OPTION IMPRESSION(zoneWrite;Spooler document name option;0;0;$nomFichier)
WR FIXER OPTION IMPRESSION(zoneWrite;wr option destination;wr vers fichier PDF;0;$cheminAccesPDF)
WR EXECUTER COMMANDE(zoneWrite;wr cmd figer références)
WR IMPRIMER(zoneWrite;wr impression valeurs;1)
end if
end if

Else// pdf creator pour les anciens windows

imprimanteCourante:=PDFCreator Printer name
If (Find in array($tabImprimante;imprimanteCourante)>0)
SET CURRENT PRINTER(imprimanteCourante)
If (ok=1)
SET PRINT OPTION(Destination option;wr vers fichier PDF;$cheminAccesPDF)
OPEN PRINTING JOB
WR EXECUTER COMMANDE(zoneWrite;wr cmd figer références)
WR IMPRIMER(zoneWrite;wr impression valeurs;1)
CLOSE PRINTING JOB// l’impression ne démarre qu’ici
end if
end if

End case

</code 4D>

Merci à tous çà marche.

Ce code devrait marcher, mais, en tous cas, il y a un problème quand je veux imprimer un FORMULAIRE (et non une zone Write comme dans le code), au moment où j’utilise :

FIXER OPTION IMPRESSION(Option destination;3;$NomLong)

à ce moment, OK renvoie zéro, par la suite le fichier ne se crée pas en mode silencieux !

Product :4D - 4D Server
4D : v13.6
OS : Windows 10 (32 bits)

Cela n’a peut-être rien à voir, mais il y a un nouveau comportement sous Windows 10 qui semble-t’il par défaut change (d’après lui gére :roll:) l’imprimante courante.
Essayez de désactiver cette nouvelle option qui bascule l’imprimante courante au bon vouloir de Windows (J’ai constaté des disfonctionnements liés à cela; je ne sais pas si 4D remarque ces changements car il lisait l’imprimante par défaut au démarrage de l’application…)

Merci, mais à priori, ce n’est pas ça, car l’imprimante que j’ai fixée est bien la bonne (Microsoft Print to PDF), j’ai testé par Lire imprimante courante.
Le problème semble dans FIXER OPTION IMPRESSION(option destination;$NomLong) qui renvoie OK=zéro.
D’ailleurs dans la file d’attente de l’imprimante, je vois apparaitre fugacement mon fichier, et je ne sais pas où il va, et finalement nulle part puisqu’il est introuvable !

C’est peut être là le problème :roll: l’option destination 3 est prévu pour (piloter) PDF Creator pas pour l’imprimante Microsoft Print to PDF…

Cf. https://doc.4d.com/4Dv14/4D/14.4/FIXER-OPTION-IMPRESSION.301-2511434.fr.htmlla doc> (v14 j’ai plus trouvé la v13…:oops:)

Oui, c’est bien la doc que j’avais.
On aurait pu penser que cette option conviendrait pour un autre pilote pdf :roll:

Est-ce à dire que cela fonctionne avec les versions postérieures de 4D ?

NB :
Heureusement que pdf creator 1.7.3 fonctionne toujours avec Windows 10, même 64 bits :smiley:

Il faut utiliser option destination 2 pour fixer le chemin de sorti du document, quelque soit le type d’imprimante sélectionner.

Sous windows l’option 3 est réservé a pdf creator.

Oui, parfaitement, ça marche, merci de m’avoir débloqué(*) :pray:

(*) curieusement j’avais déjà essayé (en vain) hier, mais autre chose devait coincer :oops:

: Manuel PIQUET

(v14 j’ai plus trouvé la v13…:oops:)
La livedoc remonte https://livedoc.4d.com/4D-Langage-11.6/4D-Langage.100-205180.fr.htmljusqu’à la v11>.