Formatierungszeichen drucken

Dieses Thema Formatierungszeichen drucken im Forum "Microsoft Office Suite" wurde erstellt von Eggi, 9. Okt. 2005.

Thema: Formatierungszeichen drucken Liebe Leute! Kennt ihr eine Möglichkeit die Formatierungszeichen in Word 2000 / 2003 auszudrucken? Mir ist bekannt...

  1. Liebe Leute!

    Kennt ihr eine Möglichkeit die Formatierungszeichen in Word 2000 / 2003 auszudrucken? Mir ist bekannt das sie auch unter dem Begriff nichtdruckbare Zeichen geführt werden. Für Schulungszwecke wäre es mir wichtig eine Lösung des Problems zu bekommen.
     
  2. Hallo Eggi,

    auf der Symbolleiste->Format' ist das Zeichen Pi, mit dem man die Darstellung der Formatierungszeichen ein-/ausschalten kann.

    Eine Möglichkeit wäre, screenshots der einzelnen Seiten des Dokumentes bei eingeschalteter Darstellung von Formatierungszeichen zu machen.

    Eine weiter Lösung wäre ein Makro, der die->nicht druckbaren Zeichen im Text umwandelt und dann das ganze ausdruckt. Den müßte ich aber erst zusammenstellen. Bei dem Makro besteht auch die Gefahr, dass durch das Einfügen nicht druckbarer Zeichen als Text, der Gesamttext leicht verschoben wird und damit sich das Layout verändert.

    Reicht dir die erste Lösungsmöglichkeit nicht aus, nenne mal die Zeichen, die mit auf dem Ausdruck dargestellt werden sollen.

    Gruß Matjes :)
     
  3. Hallo Matjes!

    Danke für deine Antwort!

    Im Prinzip würde mir der Screenshot reichen. Leider hat der den Nachteil, das der beim späteren Vergrößerung in A4 - Format nicht sauber aussieht.

    Ein Makro scheint mir die beste Lösung. Ich möchte nicht anfangen die Formatierungszeichen aufzuzählen, weil ich die Gefahr sehe, das ich eins vergesse. Aber Tapp, weiche u. harte Zeilenschaltung, Leerzeichen usw. müssten schon sein.

    Aber vielleicht gibt es noch andere Lösungen. Wie machen die das eigentlich bei Lehrbüchern?
     
  4. Idee:
    - alle Leerzeichen durch das ASCII-Zeichen 250 (·) ersetzen
    - alle Zeilenumbrüche (Absatzmarken) durch das ASCII-Zeichen 20 (¶) ersetzen
    - alle manuellen Zeilenumbrüche durch ein Leerzeichen und das ASCII-Zeichen 168 (¿) ersetzen. Danach das Zeichen 168 in die Schriftart Symbol ändern. Da sieht es dann nicht mehr wie ein umgedrehtes Fragezeichen aus, sondern wie der Pfeil auf der Enter-Taste.
    - entsprechend wird mit dem Tabulator verfahren.
    - alle anderen Zeichen können entsprechend im Makro ergänzt werden.
    Code:
    Sub nicht_druckbare_drucken()
    
    Dim Mldg, Stil, Titel, Antwort->Kontrolle, ob richtige Wörd-Version vorliegt
    Mldg = Hattu Wörd 2000 oder höher? & Chr(10) & _
     
    Stil = vbYesNo + vbCritical + vbDefaultButton2
    Titel = Voraussetzungen für dieses Makro
    Antwort = MsgBox(Mldg, Stil, Titel)
    If Antwort = vbYes Then->ab jetzt wird Ja ausgeführt
    
     ->gesamtes Dokument markieren
      Selection.WholeStory
      
      
     ->Leerzeichen
      With Selection.Find
        .Text =  
        .Replacement.Text = ·
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
      End With
      Selection.Find.Execute Replace:=wdReplaceAll
      
      
     ->Absatzmarke
      Selection.Find.ClearFormatting
      Selection.Find.Replacement.ClearFormatting
      With Selection.Find
        .Text = ^a
        .Replacement.Text = ¶^a
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
      End With
      Selection.Find.Execute Replace:=wdReplaceAll
      
      
     ->manueller Zeilenumbruch
      Selection.Find.ClearFormatting
      Selection.Find.Replacement.ClearFormatting
      Selection.Find.Replacement.Font.Name = Symbol
      With Selection.Find
        .Text = ^z
        .Replacement.Text =  ¿^z
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
      End With
      Selection.Find.Execute Replace:=wdReplaceAll
      
     ->manuellen Zeilenumbruch in Schriftart Symbol ändern
      Selection.Find.ClearFormatting
      Selection.Find.Replacement.ClearFormatting
      Selection.Find.Replacement.Font.Name = Symbol
      With Selection.Find
        .Text = ¿
        .Replacement.Text = ¿
        .Forward = True
        .Wrap = wdFindAsk
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
      End With
      Selection.Find.Execute Replace:=wdReplaceAll
    
    
     ->Tabulator
      Selection.Find.ClearFormatting
      Selection.Find.Replacement.ClearFormatting
      Selection.Find.Replacement.Font.Name = Symbol
      With Selection.Find
        .Text = ^t
        .Replacement.Text =  ® 
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
      End With
      Selection.Find.Execute Replace:=wdReplaceAll
      
     ->Tabulator in Schriftart Symbol ändern
      Selection.Find.ClearFormatting
      Selection.Find.Replacement.ClearFormatting
      Selection.Find.Replacement.Font.Name = Symbol
      With Selection.Find
        .Text = ®
        .Replacement.Text = ®
        .Forward = True
        .Wrap = wdFindAsk
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
      End With
      Selection.Find.Execute Replace:=wdReplaceAll
    
      Selection.HomeKey Unit:=wdStory
      
     Else
     ->Jetzt wird Nein ausgeführt
      GoTo Pechgehabt
      End If
    Pechgehabt:
      MsgBox Dann hattu Pech gehabt. & Chr(10) & _
        & Chr(10) & _
      Dieses Makro geht nur bis Wörd 97 & Chr(10) & _
       
    End Sub
    
    Nachteile:
    - Tabulatoren verrutschen, da sie jetzt eine feste Breite haben und sich nicht an der Tabulatorenanordnung in der Formatvorlage anlehnen.
    - nach jedem Ersetz-Vorgang kommt ein Popup, das man mit JA bestätigen muß (im vorliegenden Beispiel 6x)
    - man sollte das nicht mit dem Origial-Dokument, sondern mit einer Kopie machen.
    Vorteil:
    Matjes kann das sicher noch etwas elegantifizieren ;D
     
  5. Jo, das geht ja schon voll in die richtige Richtung  :D

    Eben diese->Nachteile' beschäftigen mich, wie man sie beseitigt oder soweit als möglich einschränkt.  :-\
    Mal schauen ...

    Bei Ersetzen von Formatierungszeichen ist darauf zu achten, dass sich ab Word2000 die Bezeichnungen der Formatierungszeichen von deutschen in englisch gewandelt haben, z.B. die Absatzmarke (alt: ^a) wird jetzt mit ^p bezeichnet.

    Gruß Matjes :)
     
  6. Da hamse mal wieder was in Grund und Boden abwärtsgekompatibelt. :(
    Gibt's da->ne Übersetzungstabelle?



    Achtung, habe den Makro-Code weiter oben noch um eine Kontrollmeldung modifiziert. Vielleicht kann man das Ding ja für beide Versionen kompatibel machen.
     
  7. Liebe Leute!

    Über soviel Resonanz auf meine Frage freue ich mich. Das hätte ich wirklich nicht erwartet. Habt vielen Dank für Eure Bemühungen!
     
  8. Hallo zusammen,

    jetzt eine Zwischen-Version mit Übersetzungstabelle. Schreibt aber noch in das Orginal-Dokument !!!

    Gruß Matjes  :)

    Code:
    Option Explicit
    '**********************************************************************
    Sub NichtDruckbareFormatierungszeichen_AlsTextEinfuegen()
    
      Dim s_Absatzmarke As String
      Dim s_ManuellerZeilenwechsel As String
      Dim s_GeschuetzterBindestrich As String
      Dim s_GeschuetztesLeerzeichen As String
      Dim s_Kommentarzeichen As String
      Dim s_Leerzeichen As String
      Dim s_Grafik As String
      Dim r As Range, doc As Document
            
            
     ->versionsspezifische Formatbezeichnung
      Call BezeichnungenFormatierungszeichenFuerVersionFestlegen( _
                                            s_Absatzmarke, _
                                            s_ManuellerZeilenwechsel, _
                                            s_GeschuetzterBindestrich, _
                                            s_GeschuetztesLeerzeichen, _
                                            s_Kommentarzeichen, _
                                            s_Leerzeichen, _
                                            s_Grafik)
            
            
     ->Range gesamtes Dokument
      Set doc = ActiveDocument
      Set r = ActiveDocument.StoryRanges(wdMainTextStory)
        
     ->Absatzmarke
      Call myAlleZeichenErsetzen(r, s_Absatzmarke, _
                              ¶ & s_Absatzmarke, , False)
      
     ->manueller Zeilenumbruch
      Call myAlleZeichenErsetzen(r, s_ManuellerZeilenwechsel, _
                              ¿ & s_ManuellerZeilenwechsel, Symbol, False)
      
     ->manuellen Zeilenumbruch in Schriftart Symbol ändern
      Call myAlleZeichenErsetzen(r, s_ManuellerZeilenwechsel, _
                                    s_ManuellerZeilenwechsel, Symbol, False)
    
    ' ->Tabulator
    '  Call myAlleZeichenErsetzen(r, ^t,   ®  , Symbol, False)
    '
    ' ->Tabulator in Schriftart Symbol ändern
    '  Call myAlleZeichenErsetzen(r, ®, ®, Symbol, True)
    '
    ' ->Leerzeichen
    '  Call myAlleZeichenErsetzen(r,  , ·, , False)
    '
      doc.Range(Start:=1, End:=1).Select
    AUFRAEUMEN:
      Set r = Nothing: Set doc = Nothing
    End Sub
    '**********************************************************************
    Private Function myAlleZeichenErsetzen( _
                          r As Range, _
                          s_text As String, _
                          s_RepText As String, _
                          s_RepFontName As String, _
                          b_Format As Boolean)
      
      With r.Find
        .ClearFormatting
        .ClearFormatting
        .Replacement.ClearFormatting
        .Text = s_text
        .Replacement.Text = s_RepText
        If s_RepFontName <>  Then .Replacement.Font.Name = s_RepFontName
        .Format = b_Format
        .Forward = True
        .Wrap = wdFindContinue
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        On Error Resume Next
        .Execute Replace:=wdReplaceAll
        On Error GoTo 0
      End With
    End Function
    '**********************************************************************
    Private Function BezeichnungenFormatierungszeichenFuerVersionFestlegen( _
                                s_Absatzmarke As String, _
                                s_ManuellerZeilenwechsel As String, _
                                s_GeschuetzterBindestrich As String, _
                                s_GeschuetztesLeerzeichen As String, _
                                s_Kommentarzeichen As String, _
                                s_Leerzeichen As String, _
                                s_Grafik As String)
        If Val(Application.Version) > 8 Then
         ->ab Word-2000
          s_Absatzmarke = ^p
          s_ManuellerZeilenwechsel = ^l
          s_GeschuetzterBindestrich = ^~
          s_GeschuetztesLeerzeichen = ^s
          s_Kommentarzeichen = ^a
          s_Leerzeichen = ^w
          s_Grafik = ^g
        Else
         ->Word-97
          s_Absatzmarke = ^a
          s_ManuellerZeilenwechsel = ^z
          s_GeschuetzterBindestrich = ^_
          s_GeschuetztesLeerzeichen = ^g
          s_Kommentarzeichen = ^5
          s_Leerzeichen = ^l
          s_Grafik = ^r
        End If
    End Function
     
  9. So, jetzt eine Version zum ausprobieren  :D

    Für die Tabs ist mir noch keine vernünftige Lösung eingefallen  :mad:
    Bei Abschnittswechseln ist's auch ein erster Wurf.

    Schaut mal was noch stark verbesserungswürdig ist.

    Gruß Matjes :)

    Code:
    Option Explicit
    
    Dim b_Test As Boolean->True=Testbetrieb, False=realer Betrieb
    
    '**********************************************************************
    Sub MitFormatierungszeichenDrucken()
      
      Dim doc As Document, s_Dateiname_Full As String, s_Dateiname_Full_tmp As String
      
      Set doc = ActiveDocument
      
      b_Test = False->True=Testbetrieb, False=realer Betrieb
      If b_Test Then doc.Save
      
     ->prüfen, ob Dokument gespeichert ist
      If Not doc.Saved Then
        MsgBox (Bitte speichern sie das Dokument vor dem Aufruf diese Makros.)
      Else
        
       ->Datei unter temporärem Namen speichern
        s_Dateiname_Full = doc.FullName
        s_Dateiname_Full_tmp = _
          Left(s_Dateiname_Full, Len(s_Dateiname_Full) - 4) & _
          _MirNdF & _
          Right(s_Dateiname_Full, 4)
        Application.DisplayAlerts = False
        doc.SaveAs FileName:=s_Dateiname_Full_tmp
        Application.DisplayAlerts = True
        
       ->nicht druckbare Formatierungszeichen als Text einfügen
        Call NichtDruckbareFormatierungszeichen_AlsTextEinfuegen(doc)
        
        
        If Not b_Test Then
         ->tmp. Dokument ausdrucken
          doc.PrintOut
        Else
         ->tmp. Dokument als Seitenansicht
          doc.PrintPreview
          ActiveWindow.ActivePane.View.Zoom.Percentage = 150
          MsgBox (So ok ?)
        End If
       ->tmp Dokumentschliessen und löschen
        doc.Close savechanges:=False
        Kill (s_Dateiname_Full_tmp)
        
       ->ursprüngliches Dokument öffnen
        Documents.Open FileName:=s_Dateiname_Full
      
      End If
      
      Set doc = Nothing
    End Sub
    
    '**********************************************************************
    Function NichtDruckbareFormatierungszeichen_AlsTextEinfuegen(doc As Document)
    
      Dim s_Absatzmarke As String
      Dim s_ManuellerZeilenwechsel As String
      Dim s_GeschuetzterBindestrich As String
      Dim s_GeschuetztesLeerzeichen As String
      Dim s_Kommentarzeichen As String
      Dim s_Leerzeichen As String
      Dim s_Grafik As String
      Dim r As Range
            
            
     ->versionsspezifische Formatbezeichnung
      Call BezeichnungenFormatierungszeichenFuerVersionFestlegen( _
                                            s_Absatzmarke, _
                                            s_ManuellerZeilenwechsel, _
                                            s_GeschuetzterBindestrich, _
                                            s_GeschuetztesLeerzeichen, _
                                            s_Kommentarzeichen, _
                                            s_Leerzeichen, _
                                            s_Grafik)
      
     ->Range gesamtes Dokument
      Set r = doc.Content
        
     ->Absatzmarke
      Call myAlleZeichenErsetzen(r, s_Absatzmarke, ¶ & s_Absatzmarke, , 0)
      
     ->manueller Zeilenumbruch
      Call myAlleZeichenErsetzen(r, s_ManuellerZeilenwechsel, _
                             Chr(191) & s_ManuellerZeilenwechsel, Symbol, 0)
      
     ->bedingte Trennzeichen
      Call myAlleZeichenErsetzen(r, ^-, Chr(216), Symbol, 0)
      
     ->geschützte Leerzeichen
      Call myAlleZeichenErsetzen(r, s_GeschuetztesLeerzeichen, Chr(176), Symbol, 0)
     ->Leerzeichen
     ->!!! muß nach geschützte Leerzeichen erfolgen, sonst werden die gelöscht
      Call myAlleZeichenErsetzen(r,  , Chr(215), Symbol, 0)
      
     ->Tabulator
      Call myAlleZeichenErsetzen(r, ^t,   & Chr(174) &  , Symbol, 6)
      
     ->manueller Seitenwechsel
      Call myAlleZeichenErsetzen(r, ^m, _
            String(25, Chr(151)) &  Seitenwechsel  & String(25, Chr(151)) & ^m, , 6)
      
     ->manueller Spaltenwechsel
      Call myAlleZeichenErsetzen(r, ^n, _
            String(10, Chr(151)) &  Spaltenwechsel  & String(10, Chr(151)) & ^n, , 6)
            
     ->Abschnittswechsel
      Call myAlleZeichenErsetzen(r, ^b, _
            String(10, Chr(61)) &  Abschnittswechsel  & String(10, Chr(61)), , 6)
            
      doc.Range(Start:=1, End:=1).Select
    AUFRAEUMEN:
      Set r = Nothing
    End Function
    '**********************************************************************
    Private Function myAlleZeichenErsetzen(r As Range, _
                                            s_text As String, s_RepText As String, _
                                            s_RepFontName As String, s_RepFontSize As String)
      
      With r.Find
        .ClearFormatting
        .ClearFormatting
        .Replacement.ClearFormatting
        .Text = s_text
        .Replacement.Text = s_RepText
        .format = False
        If s_RepFontName <>  Then .Replacement.Font.Name = s_RepFontName: .format = True
        If s_RepFontSize <> 0 Then .Replacement.Font.Size = Val(s_RepFontSize): .format = True
        .Forward = True
        .Wrap = wdFindContinue
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        On Error Resume Next
        .Execute Replace:=wdReplaceAll
        If b_Test Then MsgBox (bearbeitet:  & s_text)
        On Error GoTo 0
      End With
    End Function
    '**********************************************************************
    Private Function BezeichnungenFormatierungszeichenFuerVersionFestlegen( _
                                s_Absatzmarke As String, _
                                s_ManuellerZeilenwechsel As String, _
                                s_GeschuetzterBindestrich As String, _
                                s_GeschuetztesLeerzeichen As String, _
                                s_Kommentarzeichen As String, _
                                s_Leerzeichen As String, _
                                s_Grafik As String)
        If Val(Application.Version) > 8 Then
         ->ab Word-2000
          s_Absatzmarke = ^p
          s_ManuellerZeilenwechsel = ^l
          s_GeschuetzterBindestrich = ^~
          s_GeschuetztesLeerzeichen = ^s
          s_Kommentarzeichen = ^a
          s_Leerzeichen = ^w
          s_Grafik = ^g
        Else
         ->Word-97
          s_Absatzmarke = ^a
          s_ManuellerZeilenwechsel = ^z
          s_GeschuetzterBindestrich = ^_
          s_GeschuetztesLeerzeichen = ^g
          s_Kommentarzeichen = ^5
          s_Leerzeichen = ^l
          s_Grafik = ^r
        End If
    End Function
     
  10. Liebe Leute ihr seid spitze!

    Ist schon klasse, was bis jetzt rausgekommen ist.
    Nach meinem Test, sind mir ein paar Dinge aufgefallen.
    1. Beim Ausdruck mit dem Makro kommt es zu veränderter Zeilenbreite, sprich das Makro schreibt mehr in die Zeile, als vorher drin stand. Wahrscheinlich ändert sich der rechte Seitenrand. Dadurch kommt es zu einem haufen getrennter Wörter ohne Bindstrich.
    2. Der Tapstop wird angezeigt. Es verändert sich im Ausdruck die Position der Schriftzeichen nach vorn. (Beispiel - halbprivater Brief- erste Zeile - Absender und dann ein Tap zum Datum auf 10,16 cm. Beim Ausdruck ruscht das Datum zum Absender, getrennt durch das Formatierungszeichen.

    Wo kann ich von den Formatierungszeichen den ASCII-Code nachlesen?

    Seid gegrüßt von eurem größten Fan!
     
Die Seite wird geladen...

Formatierungszeichen drucken - Ähnliche Themen

Forum Datum
Word 2003 : Nichtdruckbare Zeichen (Formatierungszeichen) Farbe ändern? Microsoft Office Suite 30. Juli 2010
Einzelne Zeilen aus Tabelle Drucken. StarOffice, OpenOffice und LibreOffice 15. März 2016
Drucken unter Windows XP Modus Virtualisierung & Emulatoren 25. Jan. 2016
Drucken wird zum rätsel, Windows 10 Forum 28. Dez. 2015
Drucken unter Windows 10 nicht mehr möglich Windows 10 Forum 5. Dez. 2015