Standarddrucker finden und auswählen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

susapo
**
Beiträge: 22
Registriert: Fr, 31.01.2020 19:47

Standarddrucker finden und auswählen

Beitrag von susapo »

Hallo, ich hab ein Druckerproblem. Wenn mein Calc-Makroprogramm auf anderen Rechner mit anderen Druckern läuft, dann steht in dem Calc Dokument immer noch mein Drucker drin. Und da ich zum ausprobieren bei mir zuhause den Microsoft PDF Printer ausgewählt hatte, eben der.
Wie kann ich meinem Makro sagen, dass es den Windows Standarddrucker des jeweiligen Rechners nehmen soll? oder kann ich mein Calc Dokument vor der Weitergabe "druckerfrei" machen?
bei Dannenhöfer hab ich das gefunden:

myDoc=thiscomponent
myprinter=mydoc.getprinter
msgbox myPrinter(0).value

dim arg(0) as New com.sun.star.beans.PropertyValue
arg(0).name="Name"
arg(0).value="Acrobat PDFWriter"

mydoc.setPrinter(arg())


aber in myPrinter(0).value steht dann eben der im Dokument verknüpfte Drucker, nicht der Windows StandardDrucker.
Und was ich in arg(0).value="Acrobat PDFWriter" stattdessen eintragen könnte, weiß ich nicht.

ich bitte um Nachsicht und Nachfrage, wenn ich mich unklar ausgedrückt habe.
Danke für Hilfe, Michael
susapo
**
Beiträge: 22
Registriert: Fr, 31.01.2020 19:47

Re: Standarddrucker finden und auswählen

Beitrag von susapo »

Eine Lösung hab ich schon mal selbst gefunden. Unter Extras/Optionen/Laden und Speichern kann man den Haken entfernen bei "Druckereinstellungen mit dem Dokument laden". Damit ist das Doku druckertechnisch jungfräulich und nimmt den Win Standarddrucker.
Dennopch wü´ßte ich gerne, wie ich im Makro den Standarddrucker ermitteln kann.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Standarddrucker finden und auswählen

Beitrag von Stephan »

um systemunabhängig zu sein, würde ich einfach ein neues Dokument öffnen und dessen Drucker auslesen:

Code: Alles auswählen

	Dim par(0) As New com.sun.star.beans.PropertyValue
	par(0).Name = "Hidden"
	par(0).Value = True
	
	oDoc = StarDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, par())
	
	oProps = oDoc.getPrinter()
	For i = 0 To UBound(oProps)
	    sName = oProps(i).Name
	    If sName = "Name" Then Msgbox oProps(i).Value, 64, "Standarddrucker"
	Next i  
	oDoc.Close(True)

Gruß
Stephan
susapo
**
Beiträge: 22
Registriert: Fr, 31.01.2020 19:47

Re: Standarddrucker finden und auswählen

Beitrag von susapo »

Hallo Stephan,
herzlichen Dank !! das ist ja ne tolle Idee, wird sofort in die tool-Sammlung übernommen.
liebe Grüße Michael
Antworten