Bonjour à tous,
Je dois créer un page ASP.NET qui imprime (côté serveur) un document PDF. Ce document PDF se trouve sur le serveur.
D'après mes recherches, j'ai 2 solutions :
- soit en important la DLL "shell32.dll" avec la commande "ShellExecuteA".
- soit en utilisant la librairie "AcroPDFLib" d'Abdobe.
Ca fait un moment que je potasse la première solution, mais je reste bloqué sur ce message d'erreur :
Je pense que ceci pourrait être due à l'utilisateur ASPNET qui exécute le code de la page, car celui-ci ne pourrait pas imprimer mon PDF (raison de sécurité?). J'ai déjà changé la base de registre pour m'assurer que l'utilisateur HKEY_USERS\.DEFAULT a bien une imprimante par défaut ; sans résultat.
Pour la deuxième solution, je ne sais pas s'il faut la version PRO d'adobe reader et si je ne risque pas de rencontrer le même problème!
Si quelqu'un a un peu d'expérience (ou mieux une solution) la-dessus, ça me serait d'un grand secours ; toute nouvelle piste sera la bien venue également.
Code dans la page asp :
Code de la methode appelée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public void PrintTheFile(Object sender, EventArgs e) { FilePrinter pf = new FilePrinter("C:\\TestPDF.pdf"); pf.Print(); }
Merci d'avance,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 [DllImport("shell32.dll")] private static extern int ShellExecuteA(IntPtr hwnd,string operation,string file,string paramters,string directory,int showcmd); public void Print() { if (_filename != null) ShellExecuteA(IntPtr.Zero, "print", _filename, null, null, 0); }
Yo.
Partager