tutorials.de Buch-Aktion 02/2012
Like Tree1Danke
  • 1 Beitrag von tombe
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
1010
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Frezl
    Frezl Frezl ist offline Mitglied Brokat
    Registriert seit
    Oct 2003
    Beiträge
    450
    Salü allerseits,

    ich arbeite an einem Word-Dokument, dessen Seitenränder unterhalb des druckbaren Bereichs meines Standard-Druckers liegen. Das ist bis dahin kein Problem, da ich das Dokument nur als PDF exportieren will und das funktioniert auch wie es soll. Es hat aber zur Folge, dass in der Seitenansicht die Ränder auf das Maß des Druckers abgeschnitten werden. Um die ganze Seite bis zum Rand in die Seitenansicht zu bekommen, muss ich das Dokument erst ein Mal als PDF drucken. Danach stimmt auch die Seitenansicht.
    Das Problem ist aber, dass bei jedem Neustart von Word die wieder Einstellungen für den Standarddrucker geladen werden und ich keinen Bock habe, das recht umfangreiche Dokument immer erst einmal als PDF zu exportieren, bevor ich richtig in Word arbeiten kann.

    Wie kann ich dieses Problem beheben, ohne dass ich den PDF-Drucker als Standarddrucker fürs ganze System einstellen muss? Kann ich ihn vielleicht irgendwie nur diesem einen Dokument als Standard zuweißen?

    Ich bitte um Rat.

    Viele Grüße,
    Frezl
     
    Wenn du das Gefühl hast "Cool, der Kerl konnte mir echt helfen!", dann teil es mir mit, indem du mich entsprechend bewertest!

  2. #2
    Drogist Drogist ist offline Mitglied Gold
    Registriert seit
    Jul 2007
    Beiträge
    223
    Moin,

    ich würde das per Makro erledigen. Prinzipiell würde das so aussehen:
    Standarddrucker auslesen und merken
    Automatisch beim Öffnen des Dokuments (Sub AutoOpen)
    Standarddrucker auf PDF setzen
    ..
    Automatisch beim Schließen des Dokuments (Sub AutoClose)
    Original-Standarddrucker wieder setzen
     
    Best regards
    Drogist

  3. #3
    Avatar von Frezl
    Frezl Frezl ist offline Mitglied Brokat
    Registriert seit
    Oct 2003
    Beiträge
    450
    Hey Drogist,

    Danke für deine Antwort. Damit ist aber nicht der Kern des Problems beseitigt. Ich gehöre zu den Menschen, die exzessiven Gebrauch des Multi-Taskings machen. Es könnte also sein, dass ich - während das Word-Dokument geöffnet ist - etwas im Browser ausdrucken will. Und zwar auf dem physikalischen Drucker. Und wenn ich mich da drauf verlass, dass der wie gewohnt als Standard-Drucker eingestellt ist, hab ichs verkackt :-P

    Und mit Makros kenn ich mich leider überhaupt nicht aus

    Viele Grüße,
    Frezl
     
    Wenn du das Gefühl hast "Cool, der Kerl konnte mir echt helfen!", dann teil es mir mit, indem du mich entsprechend bewertest!

  4. #4
    Drogist Drogist ist offline Mitglied Gold
    Registriert seit
    Jul 2007
    Beiträge
    223
    Moin,

    wen es denn so wichtig ist, dann arbeite mit diesem Programm in einer VM (virtual machine). Das sollte dann so gehen, da die VM ja ein virtueller eigener Rechner mit separaten Einstellungen ist.
     
    Best regards
    Drogist

  5. #5
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.016
    Hallo Frezl,
    also ich habe es bei mir eben so getestet und es hat geklappt:

    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    Public WithEvents wd As Word.Application
    Public drucker As String
    Public datei As String
     
    Private Sub Document_Open()
    Set wd = Word.Application
     
    drucker = ActivePrinter
    datei = ThisDocument.Name
     
    wd.ActivePrinter = "FreePDF" 'Name des Druckers ändern!
     
    End Sub
     
     
    Private Sub wd_WindowActivate(ByVal Doc As Document, ByVal Wn As Window)
     
    If Wn = datei Then
        wd.ActivePrinter = "FreePDF" 'Name des Druckers ändern!
    Else
        wd.ActivePrinter = drucker
    End If
     
    End Sub
     
    Private Sub wd_WindowDeactivate(ByVal Doc As Document, ByVal Wn As Window)
     
    If Wn = datei Then
        wd.ActivePrinter = drucker
    End If
     
    End Sub

    Du kannst diesen Code so wie er ist einfach kopieren und dann im VB-Editor (Alt+F11) beim Dokument einfügen. Was du dann halt noch ändern musst, ist der Name des Druckers der verwendet werden soll.

    Getestet habe ich das zwar mit Word 2000 aber das sollte keine Rolle spielen.

    Hoffe es hilft dir.

    Gruß Thomas
    Frezl bedankt sich. 
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  6. #6
    Avatar von Frezl
    Frezl Frezl ist offline Mitglied Brokat
    Registriert seit
    Oct 2003
    Beiträge
    450
    Hey tombe,

    genau sowas hab ich gesucht! Nur leider funktionierts bei mir nicht Habs eingefügt in "ThisDocument" in meinem Project. Den Druckernamen hab ich zu "FreePDF XP" geändert, so heißt mein PDF-Drucker, mit dem die Seitenansicht stimmt. Dann gespeichert. Wenn ich jetzt in die Seitenansicht gehe, seh ich keinen Unterschied. Die Ränder sind immer noch beschnitten. Auch im Druckdialog ist weiterhin der Standarddrucker ausgewählt.

    Wenn ichs richtig verstanden hab, macht dein Skript folgendes:
    Es speichert beim Öffnen des Dokuments die Namen des aktiven Druckers (also des Standarddruckers) und des aktuellen Dokuments. Danach setzts den aktiven Drucker auf "FreePDF XP".

    In den anderen beiden Subs wird jeweils der aktive Drucker getauscht. Aber was sind WindowActivate bzw Deactivate für Events? Wann werden die getriggert? Wenn ich in die Seitenansicht gehe, oder wenn ich zu diesem Worddokument wechsle?

    Grüße,
    Frezl


    // EDIT: Hab nach etwas Recherche zum Thema VBA versucht, der Sache mit einem Makro beizukommen. Aber ich kann Makros nicht abspielen :-P Selbst wenn ich die Sicherheitseinstellungen auf niedrig hab, kommt die Meldung, dass Makros deaktiviert seien :-P
    Geändert von Frezl (01.09.10 um 17:16 Uhr)
     
    Wenn du das Gefühl hast "Cool, der Kerl konnte mir echt helfen!", dann teil es mir mit, indem du mich entsprechend bewertest!

  7. #7
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.016
    Hi Frezl,

    beim Öffnen des Dokuments wird wie du oben geschrieben hast der Drucker "getauscht". So bald ein anderes Fenster (Word oder was auch immer) aktiviert bzw. das Fenster dieses Dokumentes deaktiviert wird, wird geprüft ob der Drucker wieder auf den Standard Drucker gewechselt werden muss oder nicht (deshalb wird der Name des Dokuments auch gespeichert).

    Das es bei dir nicht geht liegt meiner Meinung nach zu 100% daran das keine Makros ausgeführt werden. Es ist ja schließlich eines.

    Ich habe 2003 nur mal kurz gesehen und es gibt da wohl verschiedene Einstellungen die gemacht werden müssen damit Makros ausgeführt werden.
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  8. #8
    Avatar von Frezl
    Frezl Frezl ist offline Mitglied Brokat
    Registriert seit
    Oct 2003
    Beiträge
    450
    Yeah, geilo! Makros laufen jetzt. Hatte nicht beachtet, dass man nach dem Ändern der Sicherheitseinstellungen Word neu starten muss. Manchmal sinds die Kleinigkeiten, die einem das Leben schwer machen :-P

    Dein Skript läuft super. Macht genau das, was ich wollte Hab mit auch noch nen Befehl dazu geschrieben, der die Anzeige des Markups deaktiviert. Keine Ahnung, warum Word das immer zwanghaft einblendet...

    Viele Grüße und vielen Dank!
    Frezl

    // EDIT: Wieder mal zu früh gefreut Hab nen kleinen Fehler entdeckt: Wenn ich in der Seitenansicht bin und dann die Anwendung wechsle, bleibt Free PDF XP als Standarddrucker aktiviert. Wenn ich aber zurück nach Word in die immer noch aktivierte Seitenansicht wechsle, wird der physikalische Standarddrucker eingestellt und die Ränder nachträglich beschnitten. Ich hab dann also plötzlich den Gegenteiligen Effekt. Es fehlt das Event für das Wechseln von der Seitenansicht in ein anderes Dokument. Kannst du mir zeigen, wie ich das einbauen kann?
    Geändert von Frezl (02.09.10 um 17:30 Uhr)
     
    Wenn du das Gefühl hast "Cool, der Kerl konnte mir echt helfen!", dann teil es mir mit, indem du mich entsprechend bewertest!

  9. #9
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.016
    Hi Frezl,

    habe eine etwas geänderte Version zu bieten:

    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    Public WithEvents wd As Word.Application
    Public standard_drucker As String
    Public pdf_drucker As String
    Public datei As String
     
    Private Sub Document_Open()
    Set wd = Word.Application
     
    standard_drucker = ActivePrinter
    pdf_drucker = "FreePDF"
     
    datei = ThisDocument.Name
     
    wd.ActivePrinter = pdf_drucker
     
    End Sub
     
    Private Sub wd_DocumentChange()
     
    If wd.ActiveDocument = datei Then
        wd.ActivePrinter = pdf_drucker
    Else
        wd.ActivePrinter = standard_drucker
    End If
     
    End Sub

    Damit wird immer beim Wechsel des aktiven Dokuments geprüft ob der Dateiname entsprechend gesetzt ist oder nicht und entsprechend auch der Drucker gewechselt.
    Was hiermit allerdings nicht geht ist der Wechsel von Word zu eine beliebigen Anwendung (z.B. Explorer, eMail-Programm, Excel, ...).
    Habe bis jetzt leider noch keine Möglichkeit gefunden wie ich zusätzlich zur obigen Überprüfung prüfen kann ob Word selber den "Fokus" verliert.

    Kannst diesen Code ja trotzdem mal übernehmen. Denke das du trotz des Problems hiermit besser klar kommst.

    Gruß Thomas
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

Ähnliche Themen

  1. COM Add-In Word 2003
    Von helge008 im Forum .NET Café
    Antworten: 6
    Letzter Beitrag: 23.04.09, 15:24
  2. Word 2003 hängt unter Windows 2003 Server
    Von bubner im Forum Office-Anwendungen
    Antworten: 4
    Letzter Beitrag: 27.02.07, 13:58
  3. Word 2003 - PDF erstellen mit 6.0 Pro
    Von mestro im Forum Office-Anwendungen
    Antworten: 0
    Letzter Beitrag: 01.02.06, 10:48
  4. UTF-8 in MS Word 2003
    Von ThomasCH im Forum Office-Anwendungen
    Antworten: 0
    Letzter Beitrag: 07.05.04, 15:27
  5. Word 2003 zu PDF mit Acrobat
    Von hpedro im Forum Office-Anwendungen
    Antworten: 5
    Letzter Beitrag: 25.02.04, 23:15

Stichworte