IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Imprimer un PDF côté serveur


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Par défaut Imprimer un PDF côté serveur
    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 : 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();	
    }
    Code de la methode appelée:
    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);
    }
    Merci d'avance,
    Yo.

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Peux tu poster ton code ? Et peux tu cibler la zone de code qui semble responsable de l'erreur ?
    Ok lorsque j'ai ecrit tu n'avais pas encore modifié ta page.

  3. #3
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Peux tu mettre le code d'appel de cette méthode ?

  4. #4
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Par défaut
    Je viens d'ajouter le code dans le message original, sorry.

    Yo.

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    La méthode print est appellé coté client ou serveur ?
    Que contient _filename lorsque tu appelles print ?

  6. #6
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Par défaut
    La méthode print est appelé côté serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Button id="btnPrint" text="PRINT FILE" OnClick="PrintTheFile" runat="server" />
    _filename est initialisé dans le constructeur à la valeur : "C:\\TestPDF.pdf"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public FilePrinter(string filename)
    {
    	_filename = filename;
    }
    Pour information, quand je teste mon projet dans Visual Studio, ça fonctionne.

  7. #7
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Par défaut
    Sinon en plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ...
    using System.Runtime.InteropServices;
    ...
    [DllImport("shell32.dll")]
    private static extern int ShellExecuteA(IntPtr hwnd, string operation, string file, string paramters, string directory, int showcmd);
    ...
    public void PrintTheFile(Object sender, EventArgs e)
    {
            int result = ShellExecuteA(IntPtr.Zero, "print", "C:\\TestPDF.pdf", null, null, 0);
            // result = 42
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. imprimer pdf depuis serveur
    Par OSdave dans le forum Documents
    Réponses: 8
    Dernier message: 22/01/2007, 14h11
  2. Imprimer un PDF directement avec PHP
    Par King_T dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/05/2006, 01h02
  3. Imprimer un PDF en javascript
    Par shoushinye dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/10/2005, 09h48
  4. VBA/Word/Excel97/Imprimer un pdf sans ouvrir acrobat
    Par ouskel'n'or dans le forum VBA Word
    Réponses: 2
    Dernier message: 28/09/2005, 21h40
  5. [PDF] Imprimer un pdf
    Par Magguy dans le forum Documents
    Réponses: 3
    Dernier message: 21/01/2005, 09h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo