Dieser Quellcode kopiert einen Inhalt aus einer Richtextbox in ein Worddokument und speichert es in einem zuvor vergebenen Pfad ab.
Für Anregungen stehen zwei weitere Funktionen die Optional sind, am Ende des Quelltextes. Hierbei wird zum einen eine Funktion aufgerufen die alle Bilder im befindlichen Dokument auf eine Definierte Größe bringt. Auch ist es möglich die Seitenränder des Worddokumentes bereits im Code fest zu legen. Diese Funktionen sollten vor der Funktion „speichern“ abgearbeitet werden. Hierfür ist eine Bemerkung im Quelltext als Hinweis hinterlegt.
Imports Microsoft.Office.Interop.Word
Public Class SendToWord
Friend Sub SaveDocument()
' Erstelle eine Abfrage nach Speicherort
Dim saveFileDialog As New SaveFileDialog()
saveFileDialog.Filter = "Word-Dokument (*.docx)|*.docx|Alle Dateien (*.*)|*.*"
saveFileDialog.FileName = "Dein Dokumentname.docx"
If saveFileDialog.ShowDialog = DialogResult.OK Then
' Erstelle eine neue Word-Anwendung
Dim wordApp As New Application()
Dim wordDoc As Document = wordApp.Documents.Add()
' Füge den Inhalt der RichTextBox in das Word-Dokument ein
wordDoc.PageSetup.Orientation = WdOrientation.wdOrientPortrait
wordDoc.PageSetup.PaperSize = WdPaperSize.wdPaperA4
wordDoc.Content.Font.Name = "Microsoft YaHei UI"
wordDoc.Content.Font.Size = 8
' Füge einen neuen Absatz hinzu
Dim para As Paragraph = wordDoc.Paragraphs.Add()
' Kopiere den Inhalt der RichTextBox in die Zwischenablage
Richtextbox1.SelectAll()
Richtextbox1.Copy()
' Füge den Inhalt der Zwischenablage in das Word-Dokument ein
para.Range.Paste()
Dim img As InlineShape
' !!! Füge hier vor dem speichern optionale Funktion ein !!!
' Speichere das Dokument
Dim savePath As String = saveFileDialog.FileName
wordDoc.SaveAs2(savePath)
' Schließe das Dokument und die Word-Anwendung
wordDoc.Close(False)
wordApp.Quit(False)
' Freigeben der COM-Objekte
System.Runtime.InteropServices.Marshal.ReleaseComObject(wordDoc)
System.Runtime.InteropServices.Marshal.ReleaseComObject(wordApp)
End If
' Zwischenablage wird gelöscht
Clipboard.Clear()
End Sub
End Class
Optionale Funktion 1: Bilder in einer einheitlichen Größe speichern
' Überprüfen, ob das Dokument Bilder enthält
If wordDoc.InlineShapes.Count > 0 Then
' Es wird die Anzahl der Bilder im Dokument abgerufen
Dim Cnr As Integer = wordDoc.InlineShapes.Count
For i As Integer = 1 To Cnr
' Erstes Bild im Dokument auswählen
img = wordDoc.InlineShapes(i)
' Bildgröße festlegen (in Punkten)
img.Width = 550 ' Breite in Punkten
img.Height = 90 ' Höhe in Punkten
Next
End If
Optionale Funktion 2: Seitenränder vorgeben
' Seitenränder werden festgelegt
wordDoc.PageSetup.TopMargin = 10
wordDoc.PageSetup.LeftMargin = 10
wordDoc.PageSetup.RightMargin = 10
wordDoc.PageSetup.BottomMargin = 10