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 :

[C#] Comment imprimer un fichier .pdf ?


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 7
    Points
    7
    Par défaut [C#] Comment imprimer un fichier .pdf ?
    Bonjour à tous,

    Je réalise une application en C# pour éditer des listings à partir de DataSet. Pour l'instant, mon appli est capable de générer un fichier .pdf (à l'aide de iTextSharp) contenant les infos et la mise en page d'un DataSet.

    Maintenant il me reste à imprimer ce PDF. Je pensais que ça serait la partie la plus simple, mais il semblerait bien que non :/

    Je précise que je ne dispose que d'Acrobat Reader 7. Donc dans mon projet, j'ai inclus la librairie "AcroPDFLib" (Interop.AcroPDFLib.dll), basée sur COM, et fournie avec Acrobat Reader.
    Ensuite j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    AcroPDFLib.AcroPDFClass test = new AcroPDFClass();
     
    test.LoadFile("listing.pdf");
    test.printAll();
    Malheureusement, lorsque j'éxécute le code, une exception est lancée sur la méthode LoadFile() : "Attemped to read or write protected memory. This is often an indication that other memory is corrupt." (ça c'est avec VS2005) ou "Une exception non gérée du type 'System.NullReferenceException' s'est produite..." avec VS2003.

    N'ayant jamais travaillé avec des objets COM je suis un peu perdu.

    Merci de votre aide :jap:[/code]

  2. #2
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    et si tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    AcroPDFLib.AcroPDFClass test = new AcroPDFClass();
     
    if (test != null)
    {
    test.LoadFile("listing.pdf");
    test.printAll(); 
    }
    tu as toujours le probleme ou tu n'as plus le probleme et l'impression de fonctionne pas ?

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    L'objet test n'est pas une valeur null, donc j'ai toujours le problème.

  4. #4
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    Citation Envoyé par petoulachi
    L'objet test n'est pas une valeur null, donc j'ai toujours le problème.
    et le fichier listing.pdf il est dans le repertoire de l'exe, il existe bien ?

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  5. #5
    Nouveau membre du Club Avatar de yoyann
    Inscrit en
    Juillet 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Tu met seulement le nom de ton pdf, as-tu fait un test en y mettant aussi le chemin vers le fichier ?

    Je crois que pour avoir le chemin de ton exe c'est Application.startupPath ou un truc du genre.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Oui j'ai aussi testé en mettant le chemin complet, même résultat !

  7. #7
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    il y a un exemple http://www.gotdotnet.ru/Forums/Windows/158278.aspx

    le code ne semble pas etre identique au tiens.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using AcroPDFLib;
    namespace PDFApplication
    {
      private AxAcroPDFLib.AxAcroPDF axAcroPDF1;
     
     
       private void InitializeComponent()
      {
        this.axAcroPDF1 = new AxAcroPDFLib.AxAcroPDF();   ((System.ComponentModel.ISupportInitialize)(this.axAcroPDF1)).BeginInit();
       this.SuspendLayout();
       //
       // axAcroPDF1
       //
       this.axAcroPDF1.Enabled = true;
       this.axAcroPDF1.Location = new System.Drawing.Point(24, 24);
       this.axAcroPDF1.Name = "axAcroPDF1";
       this.axAcroPDF1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAcroPDF1.OcxState")));
       this.axAcroPDF1.Size = new System.Drawing.Size(880, 480);
       this.axAcroPDF1.TabIndex = 0;
       this.axAcroPDF1.Enter += new System.EventHandler(this.axAcroPDF1_Enter);
       ((System.ComponentModel.ISupportInitialize)(this.axAcroPDF1)).EndInit();
       this.ResumeLayout(false);
      }
     
      private void axAcroPDF1_Enter(object sender, System.EventArgs e)
      {
       axAcroPDF1.LoadFile(@"C:\Programme\Adobe\Acrobat 7.0\Help\ENU\Reader.pdf");  
      }
     }
    }
    tu as pensé a ajouter tout ce code la ?

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Le problème c'est que je n'ai pas de namespace AxAcroPDFLib. Il doit me manquer une référence mais je ne sais pas laquelle :/

  9. #9
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    Citation Envoyé par petoulachi
    Le problème c'est que je n'ai pas de namespace AxAcroPDFLib. Il doit me manquer une référence mais je ne sais pas laquelle :/
    comme je n'ai jamais utiliser ce truc la, je ne peux pas trop te dire quelle reference il te faut.

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Ha j'ai fini par trouver (enfin on m'a montré plutot ).

    en fait je m'y prenais mal, moi j'ajoutais une référence à mon projet, alors qu'en fait il faut rajouter un composant graphique ActiveX.

    Une fois ceci fait, on ajoute le composant comme on ajoute un simple bouton, et le tour est joué

    Merci de votre aide !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/03/2011, 16h35
  2. Comment rendre un fichier PDF non imprimable?
    Par sofien dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 09/02/2009, 21h45
  3. Comment imprimer un fichier pdf
    Par deadstar62 dans le forum Documents
    Réponses: 1
    Dernier message: 18/06/2007, 10h39
  4. Comment imprimer un fichier Pdf directement à partir de Delphi ?
    Par toumoham dans le forum API, COM et SDKs
    Réponses: 11
    Dernier message: 07/12/2005, 16h28

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