none
Générer des PDF à partir d'une datagridView RRS feed

  • Question

  • Bonjour mesdames et messieurs,

     

    Je dois créer une petite application qui va, lorsqu'on clic sur un bouton générer un fichier pdf. Pour ce faire, après quelque recherche, j'utilise la librairie iTextSharp.

     

    Voici le code qui nous intéresse:

    using iTextSharp;

    using iTextSharp.text;

    using iTextSharp.text.pdf;

    ...

    public Document nouveauDocument = new Document();

    ...

     

    public Boolean creationPDF()

    {

    string createur = "Yannick Berthoud";

    string societe = "société";

    string title = "logiciel";

    try

    {

    PdfWriter.GetInstance(nouveauDocument, new FileStream("client.pdf", FileMode.Create));

    nouveauDocument.Open();

    nouveauDocument.Add(new Phrase("Hello World"));

    nouveauDocument.AddAuthor(createur);

    nouveauDocument.AddCreationDate();

    nouveauDocument.AddCreator(societe);

    nouveauDocument.AddTitle(title);

    nouveauDocument.AddTitle("Titre");

    iTextSharp.text.Image logo = iTextSharp.text.Image.GetInstance(@"C:\Users\Yannick\Documents\Visual Studio 2008\Projects\connectDB\WindowsFormsApplication2\bin\Debug\5313.gif");

    nouveauDocument.Add(logo);

    toolStripStatusLabel2.Text = "PDF cr‚‚ avec succŠs.";

    return true;

    }

    catch (DocumentException dEx)

    {

    MessageBox.Show("Erreur: " + dEx.Message + " \nGetType erreur: " + dEx.GetType() + " .");

    return false;

    }

    catch (System.IO.IOException iEx)

    {

    MessageBox.Show("Erreur: " + iEx.Message + " .");

    return false;

    }

    finally

    {

    nouveauDocument.Close();

    }

    }

     

    ...

    private void btnPDF_Click(object sender, EventArgs e)

    {

    creationPDF();

    }

     

     

    Le pdf se cré effectivement. mais il fait 0 ko et est corrompu.

     

    Voici l'erreur:

    http://hiboox.com/lang-fr/resultat.php?img=vfloz2a3.png&error=0#

     

    Il passe au catch lorsqu'il arrive ici:

    nouveauDocument.AddAuthor(createur);

     

    L'idéal, serait que je puisse insérer dans mon PDF les information qui sont dans mon datagridview1. qui utilise une select pour afficher les données depuis une base MySQL:

     

    public Boolean selectClient()

    {

    try //Proc‚dure de test

    {

    //Cr‚ation de la commande

    string selectCommand = "SELECT name, firstName FROM contact;";

    maSelectCommand.SelectCommand = new MySqlCommand(selectCommand, ConnectionRessource);

    maSelectCommand.Fill(ds);

    dataGridView1.DataSource = ds.Tables[0];

    dataGridView1.Refresh();

    toolStripStatusLabel2.Text = "Liste des contacts charg‚ avec succŠs"; //Informations a l'utilisateur du succŠs

    return true;

    }

    catch (MySqlException myEx) //Erreur

    {

    toolStripStatusLabel2.Text = "Error " + myEx.GetType() + " : Impossible de lister les contacts"; //Information … l'utilisateur de l'erreur

    return false;

    }

    }

     

     

    A savoir que mon datagridview affiche avec succès les informations.

     

    Je vous remercie d'avance.

     

    Kiwi

    jeudi 24 janvier 2008 07:53

Toutes les réponses