PDF mit Powershell nochmals drucken
Hallo an alle,
aktuell muss ich ein pdf file aus einer "Fremdanwendung" nochmals drucken, weil dieses in einer bestimmten Konstellation (Adobe Acrobat Reader DC und meistens aber nicht immer HP Drucker) NICHT ausgedruckt werden kann! Da eine Umstellung auf (zb. Foxit - damit funktioniert der Druck) wegen der hohen Clientanzahl und Kundenwunsch (Acrobat) derzeit keine Lösung ist, brauche ich eine andere (wenn auch nicht schöne) Lösung:
Das bestehende pdf via powershell nochmal auf einen "PDF-Drucker" senden - dann funktioniert der Druck auch mit Acrobat DC Reader.
PDF via Powershell drucken - Reader nach druck schließen
Ich hab versucht den Code zu ändern, komme aber zu keinem Ergebnis. Wenn möglich (kein Fehler weil schon vorhanden) soll das "original-pdf" OHNE Dialog (filename) überschrieben werden, sonst neuer Name Test_new.pdf
$pdfApp = (start-process -FilePath $pdf -Verb "printto" -PassThru -ArgumentList "$printer").ProcessName hat auch nicht funktioniert.
Kann mir bitte jemand helfen?
Vielen Dank
Manrique
aktuell muss ich ein pdf file aus einer "Fremdanwendung" nochmals drucken, weil dieses in einer bestimmten Konstellation (Adobe Acrobat Reader DC und meistens aber nicht immer HP Drucker) NICHT ausgedruckt werden kann! Da eine Umstellung auf (zb. Foxit - damit funktioniert der Druck) wegen der hohen Clientanzahl und Kundenwunsch (Acrobat) derzeit keine Lösung ist, brauche ich eine andere (wenn auch nicht schöne) Lösung:
Das bestehende pdf via powershell nochmal auf einen "PDF-Drucker" senden - dann funktioniert der Druck auch mit Acrobat DC Reader.
# Drucker definieren
$printer = 'Microsoft Print to PDF'
$pdf = "C:\Users\xyz\Documents\Test.pdf"
gci "C:\Users\xyz\Documents\Test.pdf" | %{
# starte PDF-Druck via Shell-Verb 'printto'
$pdfApp = (start-process $_.FullName -Verb "printto" -PassThru -ArgumentList "$printer").ProcessName
# initialer sleep
sleep(3)
# loope solange bis Datei freigegeben wurde und lösche sie dann
#while($true){del $_ -Force -EV err -EA SilentlyContinue; If($err){sleep(1)}else{break}}
}
# PDF Applikation beenden
get-process $pdfApp -ErrorAction SilentlyContinue | Stop-Process
PDF via Powershell drucken - Reader nach druck schließen
Ich hab versucht den Code zu ändern, komme aber zu keinem Ergebnis. Wenn möglich (kein Fehler weil schon vorhanden) soll das "original-pdf" OHNE Dialog (filename) überschrieben werden, sonst neuer Name Test_new.pdf
$pdfApp = (start-process -FilePath $pdf -Verb "printto" -PassThru -ArgumentList "$printer").ProcessName hat auch nicht funktioniert.
Kann mir bitte jemand helfen?
Vielen Dank
Manrique
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 625164
Url: https://administrator.de/contentid/625164
Ausgedruckt am: 24.11.2024 um 01:11 Uhr
6 Kommentare
Neuester Kommentar
Moin,
ich bin jetzt nicht der Powershell-Papst, aber für mich sieht der Code so aus, dass Du zwar drumherum automatisierst, aber innerhalb der Anwendung bzw. des Druckertreibers nicht und ich nehme an, dass mindestens einer davon eine Nutzereingabe haben will, die nicht kommt.
Kann das sein?
Dann läge die Wurzel des Übels darin, dass Du nicht alle Nutzerinteraktionen per Script eingefangen hast.
Wie wäre ein alternativer Ansatz?
Die Fremdanwendung scheint ja PDFs zu erzeugen, die nicht ganz dem Standard entsprechen und somit vom Platzhirsch schlichtweg nicht verarbeitet werden.
Wenn Du die Möglichkeit in Betracht ziehst, dass die PDFs korrumpiert sein können, dann versuche es doch mal mit PDFtk:
http://www.techiesguide.com/repair-pdf-files-using-the-pdf-toolkit-pdft ...
Das ließe sich vielleicht leichter per Script steuern.
Gruß
bdmvg
ich bin jetzt nicht der Powershell-Papst, aber für mich sieht der Code so aus, dass Du zwar drumherum automatisierst, aber innerhalb der Anwendung bzw. des Druckertreibers nicht und ich nehme an, dass mindestens einer davon eine Nutzereingabe haben will, die nicht kommt.
Kann das sein?
Dann läge die Wurzel des Übels darin, dass Du nicht alle Nutzerinteraktionen per Script eingefangen hast.
Wie wäre ein alternativer Ansatz?
Die Fremdanwendung scheint ja PDFs zu erzeugen, die nicht ganz dem Standard entsprechen und somit vom Platzhirsch schlichtweg nicht verarbeitet werden.
Wenn Du die Möglichkeit in Betracht ziehst, dass die PDFs korrumpiert sein können, dann versuche es doch mal mit PDFtk:
http://www.techiesguide.com/repair-pdf-files-using-the-pdf-toolkit-pdft ...
Das ließe sich vielleicht leichter per Script steuern.
Gruß
bdmvg
Moin,
Um das zu realisieren, müsstest du also auf einen anderen PDF-Drucker umsteigen.
Gruß Thomas
Zitat von @Manrique:
Was muss ich ändern, damit das ursprüngliche pdf OHNE Dialog überschrieben wird?
afaik bietet "Microsoft Print to Pdf" kein speichern ohne Dialog an.Was muss ich ändern, damit das ursprüngliche pdf OHNE Dialog überschrieben wird?
Um das zu realisieren, müsstest du also auf einen anderen PDF-Drucker umsteigen.
Gruß Thomas