Exporter les données d'un datagridview vers un format pdf
-
lundi 23 avril 2012 06:44
Bonjour à tous,
je voudrais améliorer mon application en exportant les données affichées dans un datagridview vers un format pdf.
Quelqu'un sur le forum a t il une idée?
Merci.
Toutes les réponses
-
lundi 23 avril 2012 07:53
Il n'y a rien de natif à ce que je sache (contrairement à des grid d'éditeurs tiers comme Infragisics ou Telerik ou DevExpress ou ComponentOne ou (j'en ai oublié ? ;-)).
En revanche, vous pouvez le faire "à la main". C'est-à-dire créer dynamiquement votre PDF. Là encore, il est préférable de passer par des composants tiers mais bonne nouvelle, il y en a des gratuits (Open Source) comme PdfSharp que j'utilise.
Richard Clark
Consultant - Formateur .NET
http://www.c2i.fr
Depuis 1996: le 1er site .NET francophone- Proposé comme réponse Ciprian DuduialaOwner mardi 24 avril 2012 09:25
- Marqué comme réponse Ciprian DuduialaOwner jeudi 26 avril 2012 06:50
-
lundi 23 avril 2012 09:20Modérateur
Bonjour,
Pour info et d'expérience, je déconseille l'utilisation de PdfSharp. Le produit comporte beaucoup de bogues et n'est plus mis à jour.
Préférez iTextSharp dont la communauté améliore et corrige les bugs continuellement : http://sourceforge.net/projects/itextsharp/Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0- Proposé comme réponse Ciprian DuduialaOwner mardi 24 avril 2012 09:25
- Marqué comme réponse Ciprian DuduialaOwner jeudi 26 avril 2012 06:50
-
lundi 23 avril 2012 09:25
J'ai pas testé iTextSharp, mais pour ma part, j'ai jamais eu de pb avec PdfSharp (dernière mise à jour effectivement Mai 2009).
Mais quid de la licence de iTextSharp ?
Buying such a license is mandatory as soon as you develop commercial activities distributing the iText software inside your product or deploying it on a network without disclosing the source code of your own applications under the AGPL license
Richard Clark
Consultant - Formateur .NET
http://www.c2i.fr
Depuis 1996: le 1er site .NET francophone -
lundi 23 avril 2012 10:32
merci à tous pour ces reactions,
mais GILLES j'ai télécharger la dll iTextSharp mais j'ai un problème au niveau de ce code qui consomme cette dll.
Protected Sub Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Response.Clear()
Response.Buffer=True
etc
End Sub
Mon problème est à quoi correspond Response ?
- Modifié supdate lundi 23 avril 2012 10:50
-
mardi 24 avril 2012 07:19Modérateur
Bonjour,
Response est certainement la classe HttpResponse d'ASP .NET qui représente la réponse HTTP que l'on va retourner au client (navigateur).
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 -
mardi 24 avril 2012 07:23Modérateur
Bonjour,
Pour info et d'expérience, je déconseille l'utilisation de PdfSharp. Le produit comporte beaucoup de bogues et n'est plus mis à jour.
Préférez iTextSharp dont la communauté améliore et corrige les bugs continuellement : http://sourceforge.net/projects/itextsharp/Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0
Bonjour,
En fin de compte je viens de découvrir et tester la bibliothèque PdfSharp qui est très bien conçu. Très simple d'utilisation et elle utilise les mêmes concepts que l'objet Graphics GDI+.
J'ai confondu PdfSharp avec une autre bibliothèque que j'avais utilisé qui était sharpPdf (http://sourceforge.net/projects/sharppdf/files/sharppdf/). C'est cette bibliothèque que je déconseille fortement d'utiliser (d'ailleurs elle a pas été mis à jour depuis 2005 !).Merci Richard pour le tuyau !
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 -
mardi 24 avril 2012 07:28
LOL. faut dire, les noms sont pas très éloignés. et Pdf.Sharp ou Sharp.Pdf, ca existe ? ;-)))
Maintenant, je l'ai pas testé à fond, mais franchement, c'est rapide et effectivement, l'approche "à la GDI" permet de se retrouver facilement (pour peu qu'on ai fait du GDI avant).
Richard Clark
Consultant - Formateur .NET
http://www.c2i.fr
Depuis 1996: le 1er site .NET francophone -
mercredi 2 mai 2012 07:19
bonjour Gilles,Clark et à tous ceux qui sont en ligne
en fait j'ai utilisé la dll iTextSharp que j'ai téléchargé, mais j'ai un bog au niveau de la routine permettant d'avoir un fichier PDF.Voici le bout de code que j'utilise
Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click Response.Clear() Response.Buffer = True Response.ContentType = "application/pdf" Response.AddHeader("content-disposition", "attachment;filename=personnel.pdf") Response.Cache.SetCacheability(HttpCacheability.NoCache) Dim StringWriter1 As New StringWriter Dim HTMLTextWriter1 As New HtmlTextWriter(StringWriter1) GridView1.RenderControl(HTMLTextWriter1) Dim StringReader1 As New StringReader(StringWriter1.ToString()) Dim newDocument As New Document(PageSize.A4, 7.0F, 7.0F, 7.0F, 7.0F) Dim HTMLWorker1 As New HTMLWorker(newDocument) newDocument.Open() HTMLWorker1.Parse(StringReader1) newDocument.Close() Response.Write(newDocument) Response.End() End SubCe code leve une exception HttpException m'indiquant que mon Gridview être placé dans une balise form avec un runat="server" or Gridview est bien dans une balise form avec runat=server.
je joins un printecran
je j

