Bonjour,
J'ai développé une petite fonction qui permet d'imprimer un fichier pdf à partir d'un chemin donné, en utilisant les stockets (tcpclient et NetworkStream) :
Je récupère mon fichier PDF a imprimer comme suit :
ensuite j'envoie le tableau data au tcpclient pour l'imprimer sur une imprimante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 FileStream _fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); byte[] data = new byte[_fs.Length]; _fs.Read(data, 0, Convert.ToInt32(_fs.Length)); _fs.Close();
Le problème sur mon ordinateur ça fonctionne correctement il m'imprime bien mon document avec la mise en page, mais quand j’exécute mon programme sur le serveur, il envoie bien un fichier à l'imprimante, mais à la sortie j'ai des caractères bizarre qui sortent (il perd la mise en page du fichier PDF, comme -ci il imprime le fichier pdf ouvert avec bolc note !! et ce qui est bizarre c'est uniquement sur le serveur que ça me fait ça !!!)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 //envoyer à l'imprimante const int _printingPort = 9100; TcpClient _tcpClient = new TcpClient(); IPAddress _ipAdress = Dns.GetHostEntry(hostName).AddressList[0]; if (!_tcpClient.Client.Connected) _tcpClient.Connect(_ipAdress, _printingPort); NetworkStream _ns = _tcpClient.GetStream(); if (_ns.CanWrite) _ns.Write(data, 0, data.Length); _ns.Close(); _tcpClient.Close();
Ps : la commande PRINT de l'invité de commande réagit de la même façon que mon programme, sur mon poste ça fonction mais pas sur le serveur !
(acrobat reader est installé sur le serveur)
Sauriez vous pourquoi il me fait ça ? et comment corriger ?
merci pour votre aide.
Partager