Seite 1 von 1

Drucken mit Standard Drucker

Verfasst: Montag 14. Oktober 2019, 16:40
von MB57
Hallo,

habe den untenstehend Code, für den druck einer PDF mit dem Standard Drucker,
dieser druckt auch erfolgreich, bekomme aber den Fehler,

Error: 'list' object has no attribute 'function'

kann mir jemand hier weiterhelfen?

Code: Alles auswählen

#Variables
Tempfolder='C:\Temp'
Tempfile='TempPDF.pdf'

# Print Temp PDF to standard printer
pathToYourReader = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\AcroRd32.exe")
pathToYourDocument = (Tempfolder + '//' + Tempfile)	
args = [pathToYourReader, '/n', '/t', pathToYourDocument]
subprocess.Popen(args)

Re: Drucken mit Standard Drucker

Verfasst: Montag 14. Oktober 2019, 16:46
von Sirius3
Pfade sollten mit os.path.join und nicht (falsch) mit + zusammengestückelt werden.
Variablennamen werden nach Konvention klein_mit_unterstrich geschrieben.

Wenn Du mit dem Popen-Objekt nichts machst, wäre subprocess.run besser.

Wie lautet die komplette Fehlermeldung inklusive Traceback?

Re: Drucken mit Standard Drucker

Verfasst: Montag 14. Oktober 2019, 17:56
von MB57
Sirius3 hat geschrieben: Montag 14. Oktober 2019, 16:46 Pfade sollten mit os.path.join und nicht (falsch) mit + zusammengestückelt werden.
Variablennamen werden nach Konvention klein_mit_unterstrich geschrieben.

Wenn Du mit dem Popen-Objekt nichts machst, wäre subprocess.run besser.

Wie lautet die komplette Fehlermeldung inklusive Traceback?
Danke erstmal für die Korrektur, von "Pfad" und "Variablennamen", stimme dir hier voll zu :) .
bekomme kein Traceback, ich sag ja, das Ergebnis ist, das PDF wird gedruckt, aber Fehlermeldung kommt :roll:

Re: Drucken mit Standard Drucker

Verfasst: Montag 14. Oktober 2019, 18:11
von Sirius3
Wenn eine Fehlermeldung kommt, muß auch ein Traceback kommen. Ist das der komplette Code und wie startest Du das Skript?

Re: Drucken mit Standard Drucker

Verfasst: Montag 14. Oktober 2019, 19:04
von MB57
Sirius3 hat geschrieben: Montag 14. Oktober 2019, 18:11 Wenn eine Fehlermeldung kommt, muß auch ein Traceback kommen. Ist das der komplette Code und wie startest Du das Skript?

Code: Alles auswählen

import sys, os
import subprocess, winreg

#Variables
Tempfolder='C:\Temp'
Tempfile='TempPDF.pdf'

#If target directory does not exist it will be here createt
if not os.path.exists(Tempfolder):
	os.makedirs(Tempfolder)

# Create Temp PDF of all report pages
Sotware intern

# Print Temp PDF to standard printer
path_to_your_reader = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\AcroRd32.exe")
path_to_your_document = os.path.join(Tempfolder,Tempfile)#(Tempfolder + '//' + Tempfile)	
args = [path_to_your_reader, '/n', '/t', path_to_your_document]
subprocess.Popen(args)

Skript wird in einer Software Umgebung gestartet

Re: Drucken mit Standard Drucker

Verfasst: Montag 14. Oktober 2019, 19:18
von Sirius3
Dann ist das das Problem der „Software Umgebung”.

Re: Drucken mit Standard Drucker

Verfasst: Montag 14. Oktober 2019, 20:10
von MB57
Sirius3 hat geschrieben: Montag 14. Oktober 2019, 19:18 Dann ist das das Problem der „Software Umgebung”.
:D , Joup Software :oops:
trotzdem Danke für die Zeit

Re: Drucken mit Standard Drucker

Verfasst: Montag 14. Oktober 2019, 20:12
von Sirius3
Wenn Du nicht erzählst, was Du machst, kann man Dir auch nicht helfen.