Direktdruck aus Makro

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

wega
****
Beiträge: 148
Registriert: So, 03.06.2007 21:37

Direktdruck aus Makro

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Direktdruck aus Makro

Beitrag von komma4 »

Werner,

Drucken auf den Standarddrucker (wie: STRG+P und ENTER):
ThisComponent.print( Array() )
Das hast Du gesucht?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
wega
****
Beiträge: 148
Registriert: So, 03.06.2007 21:37

Re: Direktdruck aus Makro

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Direktdruck aus Makro

Beitrag 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.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
wega
****
Beiträge: 148
Registriert: So, 03.06.2007 21:37

Re: Direktdruck aus Makro

Beitrag von wega »

Hallo Winfried,

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

Gruß
Werner
Antworten