Exporter Contenu Windows Form vers PDF [Résolu]

andyajram 75 Messages postés vendredi 24 mai 2013Date d'inscription 17 avril 2018 Dernière intervention - 19 déc. 2017 à 12:15 - Dernière réponse : andyajram 75 Messages postés vendredi 24 mai 2013Date d'inscription 17 avril 2018 Dernière intervention
- 27 déc. 2017 à 16:16
Bonjour, tout le monde , je sollicite votre aide , j'ai une application vb.net qui fait l'insertion de données vers ma base sql , et je voudrais ensuite imprimé ce que j'ai insérer sous forme d'une fiche en PDF , est-ce-que quelqu'un aurait une idée comment faire ça ? pour être claire , voici mon application :



et voici ce que je veux comme résultat d'exportation :




Merci d'avance
Afficher la suite 

60 réponses

Répondre au sujet
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 21 déc. 2017 à 12:15
+1
Utile
45
Bonjour,

Si tu ne veux pas te servir d 'imprimante virtuelle, comme te le préconise Whismeril que je salue. Il te reste la possibilité d'enregistrer la Textbox en Word, car depuis Office 2007 on peut enregistrer un document Word en PDF.

Mettre dans un Form un Button et une TexBox avec ce code, il te restera à adapter les chemins qui sont en dur:

'Aller dans My Project- Références et ajouter dans COM:
'Microsoft Word 12.0 Object Library
Option Strict On
Imports System.IO
Imports Microsoft.Office.Interop
Public Class Form1
    Dim cheminpdf As String 'chemin PDF
    Dim ext As String
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim objWord = New Word.Application
        Dim objDoc As Word.Document
        Dim missing As Object = System.Reflection.Missing.Value
        TextBox1.SelectAll()
        TextBox1.Copy()
        objDoc = objWord.Documents.Add(missing, missing, missing, missing)
        'objWord.Visible = True
        objWord.Selection.Paste()
        'on enregistre en Document Word (texte brut) 'adapter chemin
        objWord.ActiveDocument.SaveAs(FileName:="C:\Users\LEPIVERT\Documents\essai.docx", FileFormat:=Word.WdSaveFormat.wdFormatDocumentDefault, _
        LockComments:=False, Password:="", AddToRecentFiles _
        :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
        :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
        SaveAsAOCELetter:=False)
        'Mise en place d'un objet OpenFileDialog pour ouvrir un fichier 
        Dim openFD As New OpenFileDialog
        With openFD
            .Filter = "Word Files  (*.docx)|*.docx"
            .FilterIndex = 1
            .Title = "Sélectionnez le document Word que vous souhaitez ouvrir."
            .FileName = "C:\Users\LEPIVERT\Documents\essai.docx" 'adapter chemin
            DialogResult = .ShowDialog
            If DialogResult = System.Windows.Forms.DialogResult.OK Then
                objDoc = objWord.Documents.Open(CStr(.FileName))
                cheminpdf = CStr(.FileName)
                ext = System.IO.Path.GetExtension(CStr(.FileName))
                cheminpdf = cheminpdf.Replace(ext, ".pdf")
                'enregistre en PDF a partir de Office 2007
                objDoc.SaveAs(CStr(cheminpdf), Word.WdSaveFormat.wdFormatPDF)
                objWord.Quit()
                MessageBox.Show("Enregistré dans le même dossier que le document Word", "Enregistrement en PDF", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Process.Start(cheminpdf)
                System.IO.File.Delete("C:\Users\LEPIVERT\Documents\essai.docx") 'supprime doc Word 'adapter chemin
            Else
                MessageBox.Show("Opération annulée par l'utilisateur!", "Enregistrement en PDF", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            End If
            .Dispose()
        End With
    End Sub

End Class

Cette réponse vous a-t-elle aidé ?  
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 27 déc. 2017 à 12:01
Voilà

Label1.Text = "azerty"
        RichTextBox1.BackColor = Color.Red
        RichTextBox1.ForeColor = Color.Blue
        RichTextBox1.Text = Label1.Text & "   essai"
        RichTextBox1.Font = New Font("Georgia", 16)
        RichTextBox1.SelectionStart = 0
        RichTextBox1.SelectionLength = 6
        RichTextBox1.SelectionFont = New Font(RichTextBox1.Font, FontStyle.Underline)


@+
andyajram 75 Messages postés vendredi 24 mai 2013Date d'inscription 17 avril 2018 Dernière intervention - 27 déc. 2017 à 12:19
cette ligne me donne une erreur
RichTextBox1.SelectionFont = New Font(RichTextBox1.Font, FontStyle.Underline)


Overload resolution failed because no accessible 'New' accepts this number of arguments !!
andyajram 75 Messages postés vendredi 24 mai 2013Date d'inscription 17 avril 2018 Dernière intervention - 27 déc. 2017 à 12:42
c'est bon j'ai réglé le problème , la déclaration devait être comme ca :
 RichTextBox1.SelectionFont = New System.Drawing.Font(RichTextBox1.Font, FontStyle.Underline)
andyajram 75 Messages postés vendredi 24 mai 2013Date d'inscription 17 avril 2018 Dernière intervention - 27 déc. 2017 à 15:50
si le texte est en gras et je sélectionne un label pour le souligné , il devient souligné mais sans gras !!! est-ce-que je peux faire les deux en même temps ?
andyajram 75 Messages postés vendredi 24 mai 2013Date d'inscription 17 avril 2018 Dernière intervention - 27 déc. 2017 à 16:16
j'ai résolu ca aussi hhhh , j'ai mis
 RichTextBox1.SelectionFont = New System.Drawing.Font(RichTextBox1.Font, FontStyle.Underline + FontStyle.Bold)
Commenter la réponse de cs_Le Pivert
Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 19 déc. 2017 à 16:00
0
Utile
2
Bonjour
Une façon de faire est d’avoir un modèle sous word, avec un signet partout où il faut insérer une info.
Tu édites ce modèle avec la libraire Docx, un petit exemple ici. Tu sauvegardes un fichier temporaire que tu envoies à une imprimante pdf.

Sinon, il existe des librairies permettant d’éditer directement des pdf en .Net https://csharp-source.net/open-source/pdf-libraries
andyajram 75 Messages postés vendredi 24 mai 2013Date d'inscription 17 avril 2018 Dernière intervention - 19 déc. 2017 à 16:24
je n'ai pas bien compris , car je n'ai pas besoin d'un word , en fait l'utilisateur ne doit pas passer par les étapes d'enregistrer le fichier sous un autre format puis le convertir et l'imprimer , tu vois , ça doit être simple pour lui
Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 19 déc. 2017 à 17:23
Si tu codes ça comme il faut, l'utilisateur n'aura rien à faire.
Commenter la réponse de Whismeril
andyajram 75 Messages postés vendredi 24 mai 2013Date d'inscription 17 avril 2018 Dernière intervention - 19 déc. 2017 à 18:17
0
Utile
10
En fait j'ai procédé autrement , j'ai mis un TextBox qui affiche tout les données et j'arrive a l'exporter maintenant mais en fichier Txt , avec ce code :
Dim iSave As New SaveFileDialog

iSave.Filter = "txt files (*.txt) |*.txt"
iSave.FilterIndex = 2
iSave.RestoreDirectory = False

If iSave.ShowDialog() = DialogResult.OK Then

IO.File.WriteAllText(iSave.FileName, TextBox4.Text)

End If


comment je peux faire que ça soit un PDF et non Txt ???
voici mon Form :

Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention > andyajram 75 Messages postés vendredi 24 mai 2013Date d'inscription 17 avril 2018 Dernière intervention - 20 déc. 2017 à 18:43
de quoi?
andyajram 75 Messages postés vendredi 24 mai 2013Date d'inscription 17 avril 2018 Dernière intervention > Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 20 déc. 2017 à 19:21
Je veux exporter les champs vers un PDF ou bien le contenu du grand TextBox en PDF et non pas l'imprimer directement ! Et les liens que tu m'as donné ce sont des convertisseur et pas un code sur vb
Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 20 déc. 2017 à 20:03
Bien sûr que ce sont des convertisseurs, VB.net ne sait pas écrire un pdf nativement.

Pour chacune de ces dll, il y a de la documentation, des tutos.
Si je prends, shaprPDF, par exemple, http://sharppdf.sourceforge.net/Tutorials.html#T1
y'en a du code là non?

Et si tu n'arrives pas à faire le parallèle entre C# et VB.Net, il suffit d'utiliser un traducteur en ligne
Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention > Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 20 déc. 2017 à 20:12
et une imprimante PDF ça n'imprime pas sur du papier, ça se fait passer pour une imprimante et ça "imprime" ce qu'on lui envoie en pdf. C'est aussi un convertisseur.
andyajram 75 Messages postés vendredi 24 mai 2013Date d'inscription 17 avril 2018 Dernière intervention > Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 20 déc. 2017 à 20:13
Je suis perdu je ne sais plus quoi faire où par où commencer
Commenter la réponse de andyajram

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.