drucken?

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

Moderator: Moderatoren

Ramses
**
Beiträge: 21
Registriert: Fr, 16.07.2004 09:20

drucken?

Beitrag von Ramses »

Hallo Leute,

ich habe folgendes Probl.:

Ich möchte gerne aus einem Makro ein Dokument drucken. Dabei soll für erste Kopie des Dokumentes Papierschacht 1 und für alle weiter folgenden Papierschacht 2 benutzt werden (Drucker unterstützt das). Leider habe ich nichts gefunden, wie ich das so machen kann.

Hat jemand einen Vorschlag?

Ach, und wie bekomme ich die Namen der Verfügbaren (angeschlossenen) Drucker? Muss wohl über die System Lib. gehen, aber wie? :)

Vielen Dank

Ramses
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Hallo Ramses,

Der Zugriff auf den Papierschacht erfolgt offensichtlich über die Seitenvorlage, laut SUN-Programmierhandbuch müßte folgender Code funktionieren:

Dim Doc As Object
Dim StyleFamilies As Object
Dim PageStyles As Object
Dim DefPage As Object
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
DefPage.PrinterPaperTray = "Name"


dieser Thread bestätigt das:
http://www.oooforum.org/forum/viewtopic ... ht=printer
allerdings ist mir nicht klar ob hier nun ein Problem vorliegt oder nicht:
http://www.oooforum.org/forum/viewtopic ... ht=printer

Die Ermittlung des Default-Druckers ist hier beschrieben:
http://www.oooforum.org/forum/viewtopic.php?p=18869

Ein Beispiel zum Drucken selbst, hier:
http://www.oooforum.org/forum/viewtopic ... ht=printer

Um alle Drucker (unter Windows) zu ermitteln, müßtest Du wohl die Registry auslesen, für andere Systeme als Windows kann ich für die Ermittlung aller Drucker keinen Rat geben.
Über den Zugriff auf die Registry müßtest Du Dich in der Library ImportWizard/Modul:API schlau machen. Mit folgendem Code kann ich den Namen des registrierten Eigentümers einer Windows 2000 Installation auslesen:

Code: Alles auswählen

Sub Main
GlobalScope.BasicLibraries.LoadLibrary("ImportWizard")
sTemplateKeyName = "Software\Microsoft\MS Setup (ACME)\User Info"
sTemplateValueName = "DefName"
eigentuemer = QueryValue(HKEY_CURRENT_USER, sTemplateKeyName,sTemplateValueName)
msgbox eigentuemer
End Sub
Ansonsten suche zu der Thematik unter http://www.oooforum.org nach Stichwort "printer". Ich bekomme dort eine ganze Reihe Treffer, welche ich nicht alle durchgehen konnte...


Gruß
Stephan
Antworten