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
19 déc. 2017 à 19:11
19 déc. 2017 à 19:51
19 déc. 2017 à 20:55
et au lieu de choisir une imprimante physique, tu choisis une imprimante pdf, Pdf Creator par exemple.
Ou sinon, (comme semble t il tu n'arrives pas à le lire quand je l'écris normalement) je t'ai mis un lien plus haut avec 3 dll qui font du pdf directement
19 déc. 2017 à 21:25
20 déc. 2017 à 17:35