1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
1010
1010
EMPFEHLEN
-
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,
FrezlWenn du das Gefühl hast "Cool, der Kerl konnte mir echt helfen!", dann teil es mir mit, indem du mich entsprechend bewertest!
-
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 setzenBest regards
Drogist
-
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,
FrezlWenn du das Gefühl hast "Cool, der Kerl konnte mir echt helfen!", dann teil es mir mit, indem du mich entsprechend bewertest!
-
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
-
01.09.10 13:01 #5
- 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ß ThomasSollte 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.
-
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 :-PGeä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!
-
02.09.10 08:19 #7
- 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.
-
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!
-
06.09.10 14:28 #9
- 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ß ThomasSollte 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
-
COM Add-In Word 2003
Von helge008 im Forum .NET CaféAntworten: 6Letzter Beitrag: 23.04.09, 15:24 -
Word 2003 hängt unter Windows 2003 Server
Von bubner im Forum Office-AnwendungenAntworten: 4Letzter Beitrag: 27.02.07, 13:58 -
Word 2003 - PDF erstellen mit 6.0 Pro
Von mestro im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 01.02.06, 10:48 -
UTF-8 in MS Word 2003
Von ThomasCH im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 07.05.04, 15:27 -
Word 2003 zu PDF mit Acrobat
Von hpedro im Forum Office-AnwendungenAntworten: 5Letzter Beitrag: 25.02.04, 23:15





Zitieren

Login




