Benutzer mit den meisten Antworten
Wie kann ich dem Standarddrucker 2 seiten pro blatt drucken lassen?

Frage
Antworten
-
https://msdn.microsoft.com/de-de/library/office/ff837331.aspx
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com- Als Antwort markiert MCMaggi Dienstag, 6. Dezember 2016 10:50
-
Ok, ich habe das Problem nun folgendermaßen gelöst:
function Print { param ( [switch]$landscape = $true ) $objWord = New-Object -Com Word.Application $objWord.Visible = $false $doc = $objWord.Documents.Open("C:\Test.docx") $doc.PageSetup.TwoPagesOnOne = $true $doc.PageSetup.Orientation = [int] [bool] $landscape $doc.Content.Font.Size = 8 $doc.Printout() }
- Als Antwort markiert MCMaggi Dienstag, 13. Dezember 2016 13:16
Alle Antworten
-
Moin,
was für eine Art Objekt ist denn in der Variable drin? Wie wird es generiert?
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com -
Hi,
habe das Script geändert. Ich starte den Prozess zum drucken des Worddokuments ohne einen Drucker auszuwählen (Kommt auf dem Standarddrucker raus)
Start-Process -FilePath "C:\Testordner\Worddokument.doc" -Verb print -WindowStyle Hidden
ich dachte mir das es hier vielleicht einen Parameter gibt womit ich 2 Seiten pro Blatt drucken kann. z.B "-PagesPerSheet two" oder sowas in der Art.
Danke
Grüße
- Bearbeitet MCMaggi Montag, 5. Dezember 2016 12:45
-
Nö, beim reinen Aufruf nicht. Aber Du kannst ja Dein Word als COM-Objekt ansteuern, und da steht Dir die ganze Palette an Möglichkeiten zur Verfügung ;-)
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com -
Ah ok.
Aber es ist doch sicher möglich wenn ich mir den Standarddrucker herhole und dann die Einstellung auf "2 Seiten pro Blatt" zu ändern oder ? (Danach eben wieder zurücksetzen)
$Standarddrucker = Get-WmiObject -Class Win32_Printer -Filter “Default = $true” $Standarddrucker.2SeitenproBlatt
gibt es da eine Methode mit der ich das machen kann? Oder geht es wirklich nur über das COM-Objekt?
Danke
Grüße
- Bearbeitet MCMaggi Dienstag, 6. Dezember 2016 09:40
-
Moin,
WMI stellt diese Property nicht zur Verfügung, da es keine Standard-Eigenschaft ist: https://msdn.microsoft.com/en-us/library/aa394364(v=vs.85).aspx
.NET hingegen hat sie im Namespace System.Printing: https://msdn.microsoft.com/de-de/library/system.printing.printticket.pagespersheet(v=vs.110).aspx
Hier ist ein Skript, das davon Gebrauch macht: https://gallery.technet.microsoft.com/scriptcenter/PrintServerManagementps1-7676ed28
Schau mal, ob Du weiter kommst. Vermutlich ist Word per COM automatisieren einfacher ;-)
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com -
Danke :)
Ich habe nun ein Comobject mit dem entsprechenden Worddokument.
$objWord = New-Object -Com Word.Application $objWord.Visible = $false $doc = $objWord.Documents.Open("C:\Test\Dokument.docx")
Mit welcher Methode kann ich nun die Einstellung ändern?
Grüße
- Bearbeitet MCMaggi Dienstag, 6. Dezember 2016 10:44
-
https://msdn.microsoft.com/de-de/library/office/ff837331.aspx
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com- Als Antwort markiert MCMaggi Dienstag, 6. Dezember 2016 10:50
-
Moin,
Du musst PrintZoomRow UND PrintZoomColumn beide setzen, im Zweifel auf eins.
Und dann halt wirklich abzählen, und für die Argumente, die Du nicht verwenden willst, [REF]$missing hinschreiben, wobei Du die Variable $missing nirgends deklarierst...
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com -
Morgen, das habe ich auch schon gelesen, ich habe versucht einen Code aus C# als Grundlage zu nehmen.
Herausgekommen ist das:
$printzoomrow = 2 $printzoomcolumn = 1 $doc.Printout([REF]$missing, [REF]$missing, [REF]$missing, [REF]$missing, [REF]$missing, [REF]$missing, [REF]$missing, [REF]$missing, [REF]$missing, [REF]$missing, [REF]$missing, [REF]$missing, [REF]$missing, [REF]$missing, [REF]$missing, [ref]$printzoomcolumn, [ref]$printzoomrow, [REF]$missing, [REF]$missing)
Er erkennt aber die Variable $missing nicht.
Folgender Fehlermedlung:
[ref] cannot be applied to a variable that does not exist. At C:\Test\Test.docx .ps1:127 char:2 + $doc.Printout.([REF]$missing, [REF]$missing,[REF]$missing, [REF]$ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (missing:VariablePath) [], RuntimeException + FullyQualifiedErrorId : NonExistingVariableReference
Grüße
- Bearbeitet MCMaggi Mittwoch, 7. Dezember 2016 09:13
-
Ok, ich habe das Problem nun folgendermaßen gelöst:
function Print { param ( [switch]$landscape = $true ) $objWord = New-Object -Com Word.Application $objWord.Visible = $false $doc = $objWord.Documents.Open("C:\Test.docx") $doc.PageSetup.TwoPagesOnOne = $true $doc.PageSetup.Orientation = [int] [bool] $landscape $doc.Content.Font.Size = 8 $doc.Printout() }
- Als Antwort markiert MCMaggi Dienstag, 13. Dezember 2016 13:16