Mehrere Dokumente per Batch drucken bzw. in Word drucken im Querformat!
Hallo zusammen,
folgende Probleme:
Die Textdateien sehen folgendermaßen aus:
xxxxxxx.yzv
x = irgendeine kombination | Endung ist immer gleich
Lösungsansatz:
Ergebnis:
Der Ausdruck erfolgt im Hochformat und die Daten werden auf der rechten Seite Abgeschnitten!
Den Drucker umstellen auf Querformat brachte auch nichts!
Neue Lösung muss her; zumindest eine die die Daten nicht auf der rechten Seite abschneidet:
Forumssuche!
In folgendem Artikel hab ich dann was gefunden:
Word_Document_durch_Batch_drucken
Das Problem, dass er Rechts einfach die Daten vom Dokument abschneidet wurde damit behoben. Aber fürs Auge ist das nichts.
Und nun das eigentliche Problem:
Wie krieg ich das Ding dazu im Querformat zu drucken?
Bin für alle Anregungen offen.
mfg
d.t.soko
folgende Probleme:
- Ich weis nicht ob ich hier richtig bin!
- Ich will eine oder mehrere "langweilige" Textdatei/en die im Querformat erstellt wurde atomtatisiert ausdrucken.
Die Textdateien sehen folgendermaßen aus:
xxxxxxx.yzv
x = irgendeine kombination | Endung ist immer gleich
Lösungsansatz:
Print /d:\\server\drucker *.yzv
Der Ausdruck erfolgt im Hochformat und die Daten werden auf der rechten Seite Abgeschnitten!
Den Drucker umstellen auf Querformat brachte auch nichts!
Neue Lösung muss her; zumindest eine die die Daten nicht auf der rechten Seite abschneidet:
Forumssuche!
In folgendem Artikel hab ich dann was gefunden:
Word_Document_durch_Batch_drucken
Erstes Problem:
Der Aufruf funktioniert nur richtig wenn es sich um eine *.doc - Datei handelt.
Lösung:
Folgender Batch: (ist auch irgendwo aus dem Forum)
Der Aufruf funktioniert nur richtig wenn es sich um eine *.doc - Datei handelt.
Lösung:
Folgender Batch: (ist auch irgendwo aus dem Forum)
::----Umbenennen der *.YZV Dateien in *.DOC (Damit das Ding auch druckt!!!)------::
Set "GutDir=c:\DTAS"
PushD %GutDir%
set "endung=.doc"
For /F %%i in ('dir /b *.yzv') do call :RenameItAll %%~ni %%~xi
::goto :eof
:RenameItAll
Set "OldName=%1"
Set "NewName=%OldName%%endung%"
ren %OldName%%2 %NewName%
Zweites Problem das Öffnen der Datei:
Habe dazu den script von @bastla (4tes RE: ) genommen und über den unten aufgeführten Code aufgerufen.
::----Aufruf VB-Script zum Drucken in Word -----::
CScript //nologo "C:\DTA\PrintAllDocs.vbs" "C:\DTAS"
Habe dazu den script von @bastla (4tes RE: ) genommen und über den unten aufgeführten Code aufgerufen.
::----Aufruf VB-Script zum Drucken in Word -----::
CScript //nologo "C:\DTA\PrintAllDocs.vbs" "C:\DTAS"
Das Problem, dass er Rechts einfach die Daten vom Dokument abschneidet wurde damit behoben. Aber fürs Auge ist das nichts.
Und nun das eigentliche Problem:
Wie krieg ich das Ding dazu im Querformat zu drucken?
Bin für alle Anregungen offen.
mfg
d.t.soko
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 77078
Url: https://administrator.de/contentid/77078
Ausgedruckt am: 23.11.2024 um 23:11 Uhr
5 Kommentare
Neuester Kommentar
mit dem folgenden Visual Basic Script kannst du alle Dateien mit der Endung *.doc in einem angegebenen Verzeichnis auf dem Standard-Drucker ausdrucken:
Der Hinweis für die Einstellung für Hoch- oder Querformat steht im Code
Der Hinweis für die Einstellung für Hoch- oder Querformat steht im Code
folderToPrint = InputBox("Bitte Verzeichnis zum Ausdrucken angeben:")
set objFS = CreateObject("Scripting.FileSystemObject")
set objFolder = objFS.GetFolder(folderToPrint)
'Fuer Word Dateien-------------------
'-----------------------------------
set objWord = CreateObject("Word.Application")
objWord.visible = true '// "true" wenn Applickation sichtbar sein soll, "false" wenn nicht
for each doc in objFolder.Files
if LCase(Right(doc.Name,4))= ".doc" then
set open_doc = objWord.Documents.Open(doc.path)
open_doc.PageSetup.Orientation = wdOrientLandscape 'Wenn Hochformat gewünscht --> "wdOrientPortrait"
open_doc.PrintOut
open_doc.close
end if
next
wscript.Sleep 2000
objWord.quit
Hallo D.T.Soko!
Vielleicht etwas OT, aber: Zum Umbenennen aller .yzv-Dateien nach .doc (was ich ohnehin nicht sinnvoll finde, da sich der Dateityp auch im angesprochenen Script leicht anpassen lässt - siehe Zeile If LCase(Mid(oFile.Name, InstrRev(oFile.Name, "."))) = ".doc" Then) würde genügen:
Grüße
bastla
Vielleicht etwas OT, aber: Zum Umbenennen aller .yzv-Dateien nach .doc (was ich ohnehin nicht sinnvoll finde, da sich der Dateityp auch im angesprochenen Script leicht anpassen lässt - siehe Zeile If LCase(Mid(oFile.Name, InstrRev(oFile.Name, "."))) = ".doc" Then) würde genügen:
ren *.yzv *.doc
Grüße
bastla
Den Font kannst du für den ganzen Text im Dokument mit folgenden Zeilen ändern:
Weitere Optionen kannst du selber herausfinden indem du Word öffnest dann ALT-F11 drückst, dann doppelklick auf "ThisDocument". Dann schreibst du eine Testroutine z.B wie folgt :
Dort kannst du mit den Objekten und Methoden herumspielen und nachher Teile auf dein VBS-Script übertragen. Mit F5 kannst du die Routine dann immer testen.
Z.b. sind alle Objekt und Methoden die du auf ein Dokument ausübst unter dem Schlüsselwort: "ActiveDocument" zu finden. Alles was du an dein "objWord" anhängst findest du unter dem Schlüsselwort "Application".
Hier hast du auch eine komfortable IntelliSense-Funktion der Objekte und Methoden.
Diese Methode gilt auch für fast alle anderen Office-Applikationen wie Excel, PowerPoint, Outlook etc. Nur heißen dort die Funktionsaufrufe teilweise anders.
Tob dich dort einfach mal aus und durchforste mal die Visual Basic Hilfe, falls sie bei der Installation von Office mit installiert wurde (Schnellstens nachholen, Hilft wirklich weiter)!
Uwe
open_doc.Select '// Alles im Dokument auswählen
objWord.Selection.Font.Size = 12 '// Fontgröße setzen
objWord.Selection.SetRange 0, 0 '// Auswahl des Textes aufheben
Weitere Optionen kannst du selber herausfinden indem du Word öffnest dann ALT-F11 drückst, dann doppelklick auf "ThisDocument". Dann schreibst du eine Testroutine z.B wie folgt :
Sub Test()
ActiveDocument.Select
Selection.ParagraphFormat.LineSpacing = LinesToPoints(1.2)
End Sub
Dort kannst du mit den Objekten und Methoden herumspielen und nachher Teile auf dein VBS-Script übertragen. Mit F5 kannst du die Routine dann immer testen.
Z.b. sind alle Objekt und Methoden die du auf ein Dokument ausübst unter dem Schlüsselwort: "ActiveDocument" zu finden. Alles was du an dein "objWord" anhängst findest du unter dem Schlüsselwort "Application".
Hier hast du auch eine komfortable IntelliSense-Funktion der Objekte und Methoden.
Diese Methode gilt auch für fast alle anderen Office-Applikationen wie Excel, PowerPoint, Outlook etc. Nur heißen dort die Funktionsaufrufe teilweise anders.
Tob dich dort einfach mal aus und durchforste mal die Visual Basic Hilfe, falls sie bei der Installation von Office mit installiert wurde (Schnellstens nachholen, Hilft wirklich weiter)!
Uwe