Aus Draw per Makro exportieren und drucken

Zeichnungen erstellen

Moderator: Moderatoren

Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

hey Simon,

also, ich weis ja nicht, ob das der richtige Weg ist. :?:

Aber, dein Weg ist natürlich realisierbar.
Das folgende Makro speichert zuerst die gerade aktuelle Datei als .jpg, ruft dann die gespeicherte Datei in einem neunen Fenster auf , druckt diese am Standarddrucker aus und schliesst das Fenster wieder.

Code: Alles auswählen

Sub Main
	myDoc = thisComponent
	'speichern des aktuellen Dokumentes als jpg
	Dim myProps(0) as New com.sun.star.beans.PropertyValue
	sURL = "file:///D:/Puffer/test.jpg" 'Pad anpassen!!!
	myProps(0).name="FilterName"
	myProps(0).value="draw_jpg_Export"
	
	myDoc.storeToURL(sURL, myProps())
	
	' öffnen der gerade gespeicherten Datei
	Dim oProp()
	oNewDoc=StarDesktop.loadComponentFromURL(sURL, "_blank", 0, oProp())
	msgBox "hallo"
	' drucken 
	oNewDoc.print(oProp())
	' schliessen
	oNewDoc.close(-1)
End Sub
Ein bischen Ahnung von Macroprogrammierung solltest Du allerdings haben. Ich habe auf Fehlerprüfroutienen und detaillierte Variablendefinitionen verzichtet, solltest du aber noch anfügen.
Vergiss nicht, Pfad und Dateiname anzupassen :!:

Vielleicht hilfts :wink:
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Also, bei mir funktioniert es. Win XP, OOo 1.1.0
Mögliche Ursachen:
- Fenster ist schon zu.
- Dokument ist nicht erstellt worden
- Tippfehler?
- Du kannst auch versuchen, statt "-1" (kommt mir immer etwas merkwürdig vor..) den Wert 2true" zu übergeben oder "1".
OOo bietet noch eine zweite Methode, ein Dokument zu schliessen:
dispose() - in dem Fall also oNewDoc.dispose()

Kannst Du auch noch versuchen.

Dann wäre noch die Frage, wo du das Makro untergebracht hast. Ich glaube, ich hatte es im Modul der ursprünglichen Zeichnung gespeichert.

P.S. die Msgbox kannst du natürlich aus dem Makro löschen. Die hat dort nichts zu suchen und diente nur zu Testzwecken.

Wenns nicht klappt, sag Bescheid. Ich probiers dann noch mal.

Gruß
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Antworten