vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: COM/OLE/Registry/DLL · Automation   |   VB-Versionen: VB4, VB5, VB627.04.07
RTF-Text mit WinWord drucken

Sofern MS-Word auf dem System installiert ist, lässt sich der Inhalt einer RTF-TextBox bequem durch Fernsteuerung von WinWord drucken oder als Druckvorschau anzeigen

Autor:   Dieter OtterBewertung:  Views:  11.893 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Immer wieder das leideige Thema: Wie drucke ich den Inhalt einer RTF-TextBox sauber aus oder wie lässt sich eine Druckvorschau realsiieren?

Sofern auf dem System Microsoft Word installiert ist, lässt sich das Ganze bequem durch Fernsteuerung von WinWord erledigen.

Beispiel:
Nachfolgend ein Beispielcode, wie man den Inhalt einer RTF-TextBox in der Seitenvorschau von Microsoft WinWord anzeigen lassen kann.

Private Sub cmdPreview_Click()
  Dim oWord As Object ' Word.Application
 
  ' Text der RichTextBox in die Zwischenablage kopieren
  Clipboard.Clear
  Clipboard.SetText RichTextBox1.TextRTF, vbCFRTF
 
  ' neue WinWord-Instanz erstellen
  On Error GoTo ErrHandler
  Set oWord = CreateObject("Word.Application")
  With oWord.Application
    .Visible = True
 
    ' neues Dokument hinzufügen
    .Documents.Add
 
    ' Inhalt der Zwischenablage einfügen
    .Selection.Paste
 
    ' Ausdruck in Seitenvorschau
    .ActiveDocument.PrintPreview
  End With
 
  ' Zwischenablage löschen
  Clipboard.Clear
  On Error GoTo 0
  Exit Sub
 
ErrHandler:
  MsgBox "Fehler beim Versuch das Dokument in der " & _
    "WinWord-Seitenvorschau anzuzeigen!" & vbCrLf & _
    CStr(Err.Number) & " " & Err.Description, vbExclamation + vbOKOnly
 
  Clipboard.Clear
  Set oWord = Nothing
End Sub

Erweiterung:
WinWord bietet bekanntlich die Möglichkeit der autom. Seitennumerierung. Also nutzen wir dieses Feature auch, indem wir eine Kopfzeile erstellen und dort das Texfeld für die autom. Seitennumerierung einfügen:

Private Sub cmdPreview_Click()
  Dim oWord As Object ' Word.Application
 
  ' Text der RichTextBox in die Zwischenablage kopieren
  Clipboard.Clear
  Clipboard.SetText RichTextBox1.TextRTF, vbCFRTF
 
  ' neue WinWord-Instanz erstellen
  On Error GoTo ErrHandler
  Set oWord = CreateObject("Word.Application")
  With oWord.Application
    .Visible = True
 
    ' neues Dokument hinzufügen
    .Documents.Add
 
    ' Inhalt der Zwischenablage einfügen
    .Selection.Paste
 
    ' Ansicht einstellen
    .ActiveWindow.ActivePane.View.Type = 3 ' wdPrintView
 
    ' Kopfzeile aktivieren
    .ActiveWindow.ActivePane.View.SeekView = 9 ' wdSeekCurrentPageHeader
 
    ' Seitennumerierung rechtsbündig eintragen
    With .Selection
      .ParagraphFormat.Alignment = 2 ' wdAlignParagraphRight
      .TypeText "Seite "
      .Fields.Add .Range, 33 ' wdFieldPage
    End With
 
    ' Kopfzeile wieder verlassen
    .ActiveWindow.ActivePane.View.SeekView = 0 ' wdSeekMainDocument
 
    ' Ausdruck in Seitenvorschau
    .ActiveDocument.PrintPreview
  End With
 
  ' Zwischenablage löschen
  Clipboard.Clear
  On Error GoTo 0
  Exit Sub
 
ErrHandler:
  MsgBox "Fehler beim Versuch das Dokument in der " & _
    "WinWord-Seitenvorschau anzuzeigen!" & vbCrLf & _
    CStr(Err.Number) & " " & Err.Description, vbExclamation + vbOKOnly
 
  Clipboard.Clear
  Set oWord = Nothing
End Sub

Drucken ohne Seitenvorschau:
Soll das Dokument ohne zusätzliche Seitenvorschau direkt ausgedruckt werden, verwenden Sie die PrintOut-Methode statt "PrintPreview". Im Anschluß kann Word dann auch autom. beendet werden:

...
 
  With oWord.Application
    ...
 
    ' Dokument ausdrucken
    .ActiveDocument.PrintOut
 
    ' Dokument schließen
    .ActiveDocument.Close 0 ' wdDoNotSaveChanges
 
    ' Word beenden
    .Quit 0 ' wdDoNotSaveChanges
  End With
  DoEvents
  Set oWord = Nothing
 
...



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.