Impression PDF et imprimante par défaut
Voila:
J'ai installé 2 imprimantes sur mon PC. Une couleur et une noir & blanc. J'ai également installé PDFCreator (le gratuit). J'ai réalisé un petit programme qui me permet d'imprimer des diagrammes vectoriels. Et c'est la que j'ai constaté un petit Bug. Allez vous pouvoir m'aider a trouver la solution.
Lorsque je sélectionne l'imprimante couleur comme imprimante par défaut mes diagrammes que je dirige vers pdfcreator sont en couleur. Mais lorsque je sélectionne l'imprimante noir & blanc mes diagrammes qui sont toujours dirigés vers PDFcreator sont maintenant en noir et blanc. Ca c'est vraiment bizzare. On dirait que l'objet TPrinter de builder récupère les paramètres de l'imprimante par défaut.
Comment faire pour que quelque soit l'imprimante sélectionnée mes impression PDF soient en couleur. Je redémarre mon application entre chaque changement d'imprimante.
C'est assez embetant car il faut absolument sélectionné l'imprimante couleur par défaut.
Qui a la réponse ???????
Titre modifié par Greybird
C'etait si simple mais encore fallait il le voir
Bon et bien ce n'etait pas tres difficile il fallait juste réfléchir un peu.
Lors de l'initialisation de l'objet TPrinter ce dernier s'initialise avec l'imprimante par défaut
Code:
1 2 3
| TPrinter *printer = Printers(); // création du pointeur
int numColors = GetDeviceCaps(printer->Handle,NUMCOLORS); |
si imprimante par défaut couleur alors numColors = 8 si noir et blanc alors numColors = 2;
Ensuite mon erreur venait du fait que je choisissais l'imprimante en faisant :
printer->printerIndex = de 0 à n
Grosse erreur car si on pointe sur la bonne imprimante pour sortir les documents on n'initialise pas l'imprimante concerné.
IL FAUT UTILISER LA FONCTION SetPrinter en récupérant le nom de l'imprimante. Donc :
printer->SetPrinter(nomImprimante,NULL,NULL,NULL);
En fait la propriété printerIndex ne doit etre utilisé qu'en lecture Seule et c'etait la mon erreur.
Voila !!!