Seite 1 von 1

Direktdruck aus Makro

Verfasst: Mi, 12.11.2008 22:54
von wega
Hallo zusammen,

wie kann ich aus einem Makro heraus direkt auf den Drucker ausgeben?

Print "das ist das Gesuchte"

ist ja nun nicht die richtige Anweisung.

Kann mir da irgend jemand weiterhelfen?

mit Gruß
Werner

Re: Direktdruck aus Makro

Verfasst: Mi, 12.11.2008 23:20
von komma4
Werner,

Drucken auf den Standarddrucker (wie: STRG+P und ENTER):
ThisComponent.print( Array() )
Das hast Du gesucht?

Re: Direktdruck aus Makro

Verfasst: Do, 13.11.2008 08:30
von wega
Hallo Winfried,

vielen Dank für Deine Antwort.
Nein, meine Suche ist etwas anders. Ich versuche es einmal zu verdeutlichen.

Code: Alles auswählen

	For i=1 to 8
	if  oForm.getByName("CheckBox"&i).State =1 then
		'A$=A$+"1 "
		N = N+2^(i-1)
	else
		'A$=A$+"0 "
	End if
	next i
	print N," ",chr(N)
wie du vielleicht im Quellcode siehst, schreibe ich den Wert N und CHR(N) aus. Diese Werte werden jetzt in einer Message-box dargestellt. Aber eigentlich will ich die Ausgabe aber über den Drucker machen.
Ich habe schon mal versucht, das Ergebnis in eine Textdatei zu schreiben und dann auszudrucken. Das ist aber ziemlich aufwendig, auch ist das Dokument nicht so einfach wieder zu schließen. siehe nachfolgenden Quellcode.

Code: Alles auswählen

	open "c:\Ausgabe.txt" for Output as #1
		print #1,chr(N)
	close #1
	'den erechneten Wert ausdrucken
	'Doc.Print(args())
	Dim printProp(4) as New com.sun.star.beans.PropertyValue
	Dim oFileProp(0) as New com.sun.star.beans.PropertyValue
	 oFileProp(0).name="MacroExecutionMode"
	 oFileProp(0).value = 0
     printProp(0).Name = "Pages"
     printProp(0).Value = "1"
     printProp(1).Name = "CopyCount"
     printProp(1).Value = 1
     printProp(2).Name = "Collate"
     printProp(2).Value = False
     printProp(3).Name = "Sort"
     printProp(3).Value = False
     'oDoc=ThisComponent
     'oDoc="c:\Ausgabe.txt"
     url=converttourl("C:\Ausgabe.txt")
     oDoc = StarDesktop.loadComponentFromURL(url, "_blank", 0, oFileProp() )
     oDoc.Print(printProp())
     'StarDesktop.loadComponentFromURL(url, "_blank", 0, oFileProp()).Print(printProp())
     oDoc.close()
Die letzte anweisung ist vollkommen fehl am Platz, da sie nicht das Textdokument betrifft sondern das aufrufende Programm und somit zum Absturtz führt.

Also, suche ich für >> print N," ",chr(N) << eine Befehlssequenz, die aus dem Makro heraus direkt auf den Drucker geht.

Ich hoffe, das ich das gut genug beschrieben habe.

Gruß
Werner

Re: Direktdruck aus Makro

Verfasst: Do, 13.11.2008 10:40
von komma4
Hallo Werner,

ah, jetzt, ja: Problem verstanden. Habe aber leider keine Lösung - nicht mal eine Idee.
Wenn Du des Englischen mächtig bist, würde ich es mal auf der dev@openoffice.org-Liste probieren (http://www.openoffice.org/mail_list.html)

Viel Erfolg - Danke auch für eine Rückmeldung hier, wenn Du ein Ergebnis hast.

Re: Direktdruck aus Makro

Verfasst: Do, 13.11.2008 20:45
von wega
Hallo Winfried,

danke für diesen Hinweis, aber so gut ist mein englisch nicht.

Gruß
Werner