Bonjours à tous.

J'utilise le nouveau control de microsoft pour les graphiques. Il est possible d'obtenir le graphique sous forme d'image grâce à la fonction saveimage.

Il est possible de choisir le format de sortie de l'image (bmp, png, emf, ect).

J'essaye de balancer l'image obtenue directement dans le presse papier afin de pouvoir la coller sous Office à l'aide d'un memory stream.

Le format bmp est facile à envoyer dans le presse papier et il donne d'assez bon résultat, mais les textes ont de la peine avec un changement de taille de l'image

Les formats compressés (png, jpeg, ect.) même chose en moins bien que le bmp.

Le format emf (Metafile Windows, mix en vectoriel et bitmap) donne de très bon résultats avec les textes mais déconne parfois sur le bitmap et pose problème pour le transfert dans le presse papier. J'y suis néanmoins arrivé avec le code et le support MSDN suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
            'Copie le graphique dans le presse papier au format MetaFile
            Using chartdata As System.IO.MemoryStream = New System.IO.MemoryStream
                chart.SaveImage(chartdata, DataVisualization.Charting.ChartImageFormat.Emf)
                chartdata.Seek(0, IO.SeekOrigin.Begin)
                Dim metafile As Imaging.Metafile = New Imaging.Metafile(chartdata)
                ClipboardMetafileHelper.PutEnhMetafileOnClipboard(Me.Handle, metafile)
            End Using
http://support.microsoft.com/kb/323530 pour la classe ClipboardMetafileHelper

Il y a encore le format emfplus et emfdual qui donnent d'excellents résultats, aussi bien pour l'image et pour le texte, mais je n'arrive pas à l'envoyer par le presse papier. Il n'y a pas d'erreur mais le pressepapier ne semble pas reconnaitre le format.

L'export dans un fichier emf fonctionne correctement.

Est-ce que quelqu'un a une idée pour balancer ces image emfplus dans le presse papier?