Bonjour,

Je souhaite faire un programme tout simple qui permet d'enregistrer un fichier PDF avec le contenu d'un panel.

J'ai donc commencé par faire ça:

Nom : Screenshot_1.png
Affichages : 166
Taille : 4,2 Ko

J'ai choisis d'utiliser iTextSharp

Lorsque je clique sur le bouton pour générer le PDF, voici le code exécuté:

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
using (SaveFileDialog sfd = new SaveFileDialog() { Filter = "PDF file|*.pdf", ValidateNames = true })
            {
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    iTextSharp.text.Document doc = new iTextSharp.text.Document(PageSize.A4.Rotate());
                    try
                    {
                        int width = panelTombi.Size.Width;
                        int height = panelTombi.Size.Height;
                        doc.Open();
                        MemoryImage = new Bitmap(width, height);
                        System.Drawing.Rectangle rect = new System.Drawing.Rectangle(0, 0, width, height);
                        panelTombi.DrawToBitmap(MemoryImage, new System.Drawing.Rectangle(0, 0, width, height));
 
                        iTextSharp.text.Image image1 = iTextSharp.text.Image.GetInstance((System.Drawing.Image)MemoryImage, System.Drawing.Imaging.ImageFormat.Jpeg);
                        image1.Alignment = iTextSharp.text.Image.ALIGN_CENTER;
                        image1.ScaleAbsolute(100f, 100f);
                        doc.SetMargins(2f, 4f, 3f, 2f);
 
                        doc.Add(image1);
                        doc.NewPage();
 
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    finally
                    {
                        doc.Close();
                    }
                }
            }
J'avais un problème, comment afficher dans le PDF le contenu d'un panel. J'ai donc choisis de transformer le contenu du panel en une image, puis de l'ajouter dans le PDF. J'ai vérifié et la variable image1 est bien une image de la même taille que le panel, ce qui montre qu'à priori l'image est bien générée.

J'indique le nom du fichier PDF, le code est exécuté, mais aucun fichier PDF n'est créé et je ne comprends pas pourquoi.

Je ne souhaite pas absolument garder cette façon de faire, mais c'est selon moi l'une des solutions.

Sauriez vous où se situe l'erreur ?

Merci d'avance