Exporter Contenu Windows Form vers PDF [Résolu]

Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
- - Dernière réponse : andyajram
Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
- 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 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
5586
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
7 décembre 2018
1
Merci
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

Merci cs_Le Pivert 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

cs_Le Pivert
Messages postés
5586
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
7 décembre 2018
-
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
Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
-
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
Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
-
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
Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
-
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
Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
-
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
Messages postés
12345
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
6 décembre 2018
0
Merci
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
Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
-
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
Messages postés
12345
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
6 décembre 2018
-
Si tu codes ça comme il faut, l'utilisateur n'aura rien à faire.
Commenter la réponse de Whismeril
Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
0
Merci
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
Messages postés
12345
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
6 décembre 2018
> andyajram
Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
-
de quoi?
andyajram
Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
> Whismeril
Messages postés
12345
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
6 décembre 2018
-
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
Messages postés
12345
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
6 décembre 2018
-
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
Messages postés
12345
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
6 décembre 2018
> Whismeril
Messages postés
12345
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
6 décembre 2018
-
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
Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
> Whismeril
Messages postés
12345
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
6 décembre 2018
-
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.