OxSvrSpt
1. Allgemeine Beschreibung
Die Bibliothek OxSvrSpt.dll stellt den Zugriff auf die Serverfunktionalitäten über eine
Microsoft-COM-Schnittstelle zur Verfügung. Der Schwerpunkt liegt auf der einfachen
Handhabbarkeit durch den Benutzer und den VB- und Scripting-konformen COM-Schnittstellen.
Dabei wird der easy-to-use-Ansatz verwendet, der es ermöglicht, einfache Aufrufe mittels weniger
Codezeilen durchzuführen. Bei Multithreadinganwendungen ist darauf zu achten, dass eine
Threadkoordination bzgl. der Ausführung von Aktionen über OxSvrSpt erfolgt.
Folgende Eigenschaften werden dabei unterstützt:
-
Fehlerbehandlung über COM-Error (IErrorInfo)
-
Alle aufgetretenen Fehler werden als COM-Fehler geworfen. Liefert ein Aufruf einer Methode mehrere Fehler zurück (z. B. Aufruf eines Server-Jobs), wird der erste Fehler als COM-Fehler geworfen und die übrigen Fehler stehen in einer Sammlung (Collection) zur Verfügung.
-
Transparente Verwendung des Base64-Parameters
-
Die Verarbeitung des Base64-Parameters des Servers wird komplett durch die OxSvrSpt übernommen. Dem Benutzer werden dafür Stream- und XML-Zugriffsmethoden zur Verfügung gestellt.
-
Automatische Kodierung und Dekodierung des Binärparameters (BASE64)
-
Die vom Benutzer an die OxSvrSpt-Bibliothek übergebenen Daten werden automatisch für die Übertragung zum Server MIME-BASE-64-kodiert und beim Abholen der Daten vom Server dekodiert. Der Benutzer kommt mit der Kodierung nicht mehr in Berührung.
-
Kodierung und Dekodierung von XML-Daten durch Bibliothek
-
Über die XML-Eigenschaften der Parameter- und FileParameter-Schnittstellen besteht die Möglichkeit, die Basic-String-Repräsentation (BSTR) der XML-Daten zu lesen und zu setzen. Die OxSvrSpt-Bibliothek übernimmt dabei die richtige Kodierung und Dekodierung in die entsprechende Binärrepräsentation (UTF-8, UTF-16, …). Die Stream-Methoden dieser Schnittstellen bietet darüber hinaus die Möglichkeit, die Daten direkt über eine IStreamSchnittstelle weiterzuverarbeiten. Es ist damit zum Beispiel möglich die Parameter direkt in ein MSXML-DOM-Dokument zu laden bzw. aus einem solchen zu übernehmen.
-
Automatische Kodierung des Passworts über das Modul
-
Für die Anmeldung besteht die Möglichkeit, das Passwort kodiert, bzw. unkodiert zu übergeben. Die notwendige Umwandlung für die Übertragung zum Server wird durch die OxSvrSptBibliothek übernommen.
Eine eingerichtete Zwei-Faktor-Authentifizierung ist nicht eingebunden.
-
Collections, die mittels ForEach verwendet werden können
-
Alle COM-Collections sind ForEach-fähig. Dadurch besteht die Möglichkeit aus Visual Basic, Scripting-Umgebungen und .net über diese zu iterieren.
-
Korrekte Verarbeitung der Collections und Parameter im Debugger
-
In Debug-Umgebungen, die direkt auf die Eigenschaften von COM-Objekten zugreifen und diese darstellen können (z. B. Visual Basic) wird sichergestellt, dass die verwendeten Streamzugriffe nicht gestört werden. Die Collections sind VB-tauglich, woraus sich die Möglichkeit ergibt die Elemente im VB-Debugger einzusehen.
-
Rückgabeparameter werden von der aufgerufenen Eigenschaft, bzw. Methode erzeugt
-
Alle Rückgabeparameter werden so zur Verfügung gestellt, dass die Erstellung über eine Methode der OxSvrSpt-Bibliothek erfolgt. Es ist nicht notwendig aus einer COMScriptumgebung heraus eine Variable zum Befüllen an die Bibliothek zu übergeben. Das ServerObjekt ist mit Ausnahme des Hilfsobjekts das einzige erzeugbare Objekt. Alle anderen Schnittstellen werden von diesem, bzw. untergeordneten Schnittstellen zur Verfügung gestellt.
-
Einfache Verarbeitung von Benachrichtigungen
-
Für die Verarbeitung von Benachrichtigungen steht eine Event-Schnittstelle zur Verfügung, die äquivalent zur Job-Schnittstelle die Verarbeitung der Ein- und Ausgabeparameter übernimmt.
-
Methoden zum Lesen und Schreiben von ASCII-Daten aus Streams
-
Wenn aus Visual Basic bzw. COM-basierten Scriptumgebungen heraus versucht wird BasicZeichenketten zu serialisieren, werden die Daten als Widechars verarbeitet. Über die zur Verfügung gestellten Methoden besteht die Möglichkeit Daten, bei denen es sich nicht um XML handelt aus Base64-Parametern als ASCII zu lesen und zu schreiben.
2. Module
2.1. Einbinden der Bibliothek
Dieser Abschnitt zeigt die Verwendung der OxSvrSpt -Bibliothek aus unterschiedlichen
Programmiersprachen heraus. Abhängig von der verwendeten Programmiersprache und
Entwicklungsumgebung unterscheiden sich die Möglichkeiten auf die Bibliothek zuzugreifen.
Visual Basic
Für die Verwendung der OxSvrSpt über die Typbibliothek ist die enaio® Serverzugriffsbibliothek
über den "Verweise"-Menüpunkt der Entwicklungsumgebung einzubinden.
Die Erstellung erfolgt über folgenden Code:
Private m_oServer As new OxSvrSpt.Server
Die Komponente kann auch mittels Late-Binding eingebunden werden. Der Quellcode dafür entspricht dem VB-Script-Code.
Visual Basic Script
In VB-Script kann das Server-Objekt folgendermaßen erzeugt werden:
Dim oServer
Set oServer = CreateObject( "OxSvrSpt.Server" )
Visual C++
Für den Einsatz der OxSvrSpt -Bibliothek in Visual C++ wird die Verwendung der import Direktive empfohlen. Der folgende Quellcodeabschnitt zeigt diesen Import. Dies sollte an einer
zentralen Stelle, z. B. der StdAfx.h erfolgen.
// warning C4192: automatischer Ausschluss von 'IStream'
// waehrend des Importierens der Typbibliothek 'OxSvrSpt.tlb'
#pragma warning ( disable: 4192 )
#import "OxSvrSpt.dll" raw_method_prefix("raw_") rename_namespace( "OxSvrSpt" )
#pragma warning ( default: 4192 )
Für die Verwendung sollten nicht die raw -Methoden, sondern die high -Methoden verwendet
werden. Um Verwechslungen zu vermeiden, werden deshalb in der obigen import -Direktive die
raw -Funktionen mit dem Präfix raw_ versehen. Die high -Methoden mappen die COM-Fehler
automatisch auf _com_error -Ausnahmebehandlungen. Zusätzlich stellen diese sicher, dass
übergebene Basic-Zeichenketten vom richtigen Typ sind. Der folgende Quellcodeausschnitt zeigt
die direkte Verwendung einer Widechar-Zeichenketten als Übergabeparameter, anstelle einer BasicZeichenkette. Da der Zugriff auf eine Basic-Zeichenkette in C++ dem einer WIDECHAR Zeichenkette entspricht ist dies kompilierbar und läuft auch so lange, wie sich der COM-Client und
der COM-Server im selben Apartment befinden.
Davon darf jedoch nicht ausgegangen werden!
Ein derartiger Aufruf kann zu schwer lokalisierbaren Fehlern führen.
HRESULT Test( BSTR Message );
...
HRESULT hr = Test( L"irgendwas" );
Wird anstelle der raw -Methode jedoch die high -Methode verwendet, sorgt die _bstr_t -Klasse
für die korrekte Verarbeitung.
HRESULT Test(_bstr_t Message );
...
HRESULT hr = Test( L"irgendwas" );
Hinweis:
Bei der Umsetzung von high -Methoden ohne retval -Rückgabewert deklariert die import Direktive diese Methoden als HRESULT anstelle von void . Dieses HRESULT liefert jedoch nie einen
Fehlerwert, da im Fehlerfall eine _com_error -Ausnahmebedingung geworfen wird. Bei diesen
Methoden ähnelt der Aufbau stark dem der raw -Funktionen. Auch aus diesem Grund sollte, um
Verwechslungen zu vermeiden, der raw_method_prefix verwendet werden.
Die Erstellung des Objekts sollte über den Konstruktor des IServerPtr und nicht über die
Methode CreateInstance, da letztere beim Fehlschlagen keine _com_error Ausnahmebedingung wirft. Es ist in diesem Fall ansonsten notwendig, den HRESULT -Wert selber
auszuwerten, um eine sprechende Fehlermeldung zu erhalten.
try {
OxSvrSpt::IServerPtr spServer( __uuidof( OxSvrSpt::Server ));
}
catch ( _com_error& ex ) {
// hier erfolgt die Fehlerbehandlung
}
Alternativ kann die Erstellung des IServer -Objekts auch über den Namen der Co-Klasse erfolgen.
Die entspricht dann in etwa dem Late-Binding bei der Objekterstellung in Visual Basic.
try {
OxSvrSpt::IServerPtr spServer( "OxSvrSpt::Server" ));
}
catch ( _com_error& ex ) {
// hier erfolgt die Fehlerbehandlung
}
Microsoft C#
Für die Verwendung der Komponente muss der Verweis enaio® Serverzugriffsbibliothek im
Microsoft Visual Studio hinzugefügt werden. Dafür klicken Sie auf Projekt - Verweis
hinzufügen - COM . Dann kann der Namensraum OxSvrSpt mit der using -Direktive
eingebunden werden.
Server server = new Server();
2.2. Anmeldung
Dieser Abschnitt zeigt die Verwendung des ISession -Objekts in verschiedenen
Programmiersprachen. Es werden Anmeldeverfahren vorgestellt, mit denen Sie sich mittels eines
unverschlüsselten und verschlüsselten Passworts, einer Sitzungs-GUID und dem NTBenutzernamen am enaio®-Server anmelden können.
Möglichkeiten zur Anmeldung
Um sich am System anzumelden, muss ein Objekt der Klasse IServer erstellt worden sein. Dieses
stellt Methoden, wie zum Beispiel Login() zur Verfügung, über die Sie sich anmelden können. Bei
einer erfolgreichen Authentifizierung liefern die Methoden ein ISession -Objekt zurück. Schlägt
die Authentifizierung fehl, wird eine COM-Ausnahmebedinung geworfen. Übergibt man für die
Parameter " Benutzername " und " Passwort " eine leere Zeichenkette, dann versucht die
Bibliothek eine Anmeldung mit dem NT-Benutzer. Die automatische Anmeldung ist möglich,
wenn diese im enaio® administrator aktiviert wurde. NTLM-Authentifikation wird derzeit noch
nicht implementiert.
-
Die
Login()-Methode dient zur Anmeldung des angegebenen Benutzers am angegebenen Server. -
Die
LoginGUID()-Methode dient zur Anmeldung mit einer bestehendenSessionGUID. -
Die
LoginBalanced()-Methode dient zur Anmeldung an eine Gruppe von Servern. Jeder mögliche Server der Liste besteht aus dem Servernamen, dem Port und einer Wichtung. Die Wichtung gibt an, mit welcher Wahrscheinlichkeit die Verbindung zum zugehörigen Server aufgebaut wird. Die Wichtungen sollten in ihrer Summe nicht größer als 100 sein. -
Die
OpenSession()-Methode dient zur Anmeldung an eine bestehendeDefaultSession.DefaultSessionskönnen mit den zuvor beschriebenen Methoden erstellt werden, indem Sie den ParameterDefaultSessionaufTruesetzt.
Visual Basic und VB-Script
Die Login() -Methode bekommt die Parameter " Benutzername ", " Passwort ", " Server " und
" Port " übergeben. In diesem Fall werden " Passworttyp " und DefaultSession automatisch auf
false gesetzt.
Dim session As session
' Anmeldung eines Benutzers am angegebenen Server
Set session = server.Login("root", "optimal", "localhost", "4000")
' Anmeldung über eine bestehende SessionGUID
Set session = server.LoginGUID("D57D21256EFB4C91B79EDD5A4928400B", "localhost",
"4000")
' Anmeldung eines Benutzers an einer Gruppe von Servern
Set session = server.LoginBalanced("root", "optimal",
"localhost#4000#90;10.1.3.100#4600#10")
Visual C++
In C können die Parameter " `Passworttyp` " und " `DefaultSession"` nicht weggelassen werden, da C keine Standardwerte unterstützt. Die folgenden Beispiele zeigen die Anmeldung mit einem verschlüsselten Passwort.
// Anmeldung eines Benutzers am angegebenen Server
OxSvrSpt::ISessionPtr spSession = spServer->Login("root", "HB016016116515215614215500000000000000000000000000", "localhost", "4000", OxSvrSpt::PasswortTypeEnum::pwEncrypted, false );
// Anmeldung über eine bestehende SessionGUID
OxSvrSpt::ISessionPtr spSession = spServer>LoginGUID("D57D21256EFB4C91B79EDD5A4928400B","localhost", "4000", false );
// Anmeldung eines Benutzers an einer Gruppe von Servern
OxSvrSpt::ISessionPtr spSession = spServer->LoginBalanced("root", "HB016016116515215614215500000000000000000000000000", "localhost#4000#90;10.1.3.100#4600#10",OxSvrSpt::PasswortTypeEnum::pwEncrypted, false );
// Eine DefaultSession erstellen (Parameter DefaultSession = true)
OxSvrSpt::ISessionPtr spDefaultSession = spServer->Login("root", "HB016016116515215614215500000000000000000000000000", "localhost", "4000", OxSvrSpt::PasswortTypeEnum::pwEncrypted, true );
// An eine DefaultSession anmelden
OxSvrSpt::ISessionPtr spSession = spServer->OpenSession((bstr_t)spDefaultSession->Properties->Item["SessionGUID"]->Value, OxSvrSpt.OpenSession);
Visual C#
In C# können die Parameter " Passwortyp " und " DefaultSession " nicht weggelassen werden.
In diesem Beispiel soll die Anmeldung mit dem NT-Benutzernamen gemacht werden, weswegen
leere Zeichenketten für die Parameter " Benutzername " und " Passwort " übergeben werden.
// Anmeldung eines Benutzers am angegebenen Server
Session session = server.Login("","","localhost", "4000", PasswortTypeEnum.pwNotEncrypted, false );
// Anmeldung über eine bestehende SessionGUID
Session session = server.LoginGUID("D57D21256EFB4C91B79EDD5A4928400B","localhost", "4000", false );
// Anmeldung eines Benutzers an einer Gruppe von Servern
Session session = server.LoginBalanced("", "", "localhost#4000#90;10.1.3.100#4600#10", PasswortTypeEnum.pwNotEncrypted, false );
// Eine DefaultSession erstellen (Parameter DefaultSession = true)
Session defaultSession = server.Login("root","optimal","localhost", "4000", PasswortTypeEnum.pwNotEncrypted, true );
// An eine DefaultSession anmelden
Session session = server.OpenSession(defaultSession.Properties["SessionGUID"].Value.ToString(), "OxSvrSpt.OpenSession");
2.3. Lizenzverwaltung
Für das Prüfen und die Verwendung von Lizenzen steht im ISession -Objekt die ILicenses Collection zur Verfügung. Über diese können die zu verwendenden Lizenzen beim Server
angemeldet, abgemeldet und übreprüft werden. Alle angemeldeten Lizenzen werden in der
Collection behalten.
/*
JavaScript-Version
Diese ermöglicht im Gegensatz zur VBS-Version die Verwendung der
COM-Exceptions. Beim Auftreten eines Fehlers wird der Programmfluss
abgebrochen und zur Fehlerbehandlung gesprungen.
*/
try
{
var oServer, oSession, oJob;
// Zugriffsobjekt erstellen und einloggen
oServer = new ActiveXObject( "OxSvrSpt.Server" );
oSession = oServer.Login( "root", "optimal", "localhost", "4000" );
// Lizenzen hinzufügen und löschen
oSession.Licenses.Add( "ASC" );
oSession.Licenses.Delete( "ASC" );
oSession.Licenses.Add( "ASC" );
// hat geklappt:o)
WScript.Echo( "ok" );
}
catch( ex )
{
// aufgetretene Fehler ausgeben
WScript.Echo( ex.description );
}
2.4. Serverereignisse
Beschreibung
Sie haben die Möglichkeit über Notifications vom Server über bestimmte Ereignisse informiert
zu werden.
VB
In Visual Basic stehen die Notifications über den Ereginismechanismus zur Verfügung, wie im
folgenden Beispiel dargestellt.
Private WithEvents m_oSession As OxSvrSpt.Session
Private m_oServer As OxSvrSpt.Server
public sub Start()
m_oServer.Properties("NotifyNeeded") = True
Set m_oSession = m_oServer.Login(,, "localhost", "4000")
end sub
Private Sub m_oSession_Notify(Job As OxSvrSpt.INotifyJob)
On Error GoTo ErrTrap
Dim strFileXML As String
strFileXML = Job.InputFileParameters(1).XML
' Rückgabeparameter
Job.OutputParameters.AddNewIntegerParameter "test", 100
Job.OutputParameters.AddNewStringParameter "meier", "huhu"
Exit Sub
ErrTrap:
MsgBox Err.Description
End Sub
VBScript
Wenn Sie in einer Scripting-Host-Umgebung (VB-Script als vbs) Notifications verwendet
möchten, müssen Sie die Instanz über die CreateObject() -Methode der WScript -Umgebung
erzeugen.
Dim oServer
Set oServer = WScript.CreateObject( "OxSvrSpt.Server", "oServer_" )
Wird das IServer -Objekt über den WScript -Host erstellt, besteht die Möglichkeit ein Präfix für
Ereignis-Funktionen mit anzugeben. Über diesen Mechanismus können die Notifications
abgefangen werden.
Weiterhin stehen die Callback -Funktionalitäten der OxSvrCom -Bibliothek über die Methoden
CreateJobSink() und CreateJobSink() der ISession -Schnittstelle zur Verfügung.
Dim oServer, oSession
Set oServer = WScript.CreateObject( "OxSvrSpt.Server", "oServer_" )
' Notifications sollen verwendet werden
oServer.Properties("NotifyNeeded") = True
' Auto-Login verwenden
Set oSession = oServer.Login( "", "", "localhost", "4000" )
' ...
'
' Diese Funktion wird vom Server-Objekt aufgerufen, wenn innerhalb der
' angegebenen Ruhezeit eine Notification eintrifft.
'
' @param oJob
' Beinhaltet die Daten für den Aufruf der Notification.
' Diese entsprechen dem Job-Objekt der Session. Der einzige
' Unterschied besteht darin, dass nicht die Eingangs-,
' sondern die Ausgangsparameter die Methoden zum Erstellen
' von Parametern aufweisen.
'
Sub oServer_Notify( oJob )
Dim strText
' Name der Notification ausgeben
strText = "Name: " & oJob.Name & vbCrLf
' alle Eingangsparameter ausgeben
strText = strText & " Parameter: " & vbCrLf
Dim oParameter
For Each oParameter In oJob.InputParameters
strText = strText & " " & oParameter.Name & " - " & _
CStr( oParameter.Value ) & vbCrLf
Next
' Ergebnis in eine Textbox schreiben
MsgBox strText
End Sub
2.5. XML-Verarbeitung
Abhängig von der verwendeten XML-Kodierung unterscheiden sich die XML-Daten in ihrer binären Darstellung.
Beispiel zur Ermittlung der Objektdefinition
JavaScript-Version
/*
JavaScript-Version
Diese ermöglicht im Gegensatz zur VBS-Version die Verwendung der
COM-Exceptions. Beim Auftreten eines Fehlers wird der Programmfluss
abgebrochen und zur Fehlerbehandlung gesprungen.
*/
try
{
var oServer, oSession, oJob;
// Zugriffsobjekt erstellen und einloggen
oServer = new ActiveXObject( "OxSvrSpt.Server" );
oSession = oServer.Login( "root", "optimal", "localhost", "4000" );
// Job für die Ermittlung der Objektdefinition erstellen
oJob = oSession.NewJob( "dms.GetObjDef" );
// Anfrageparameter setzen
oJob.InputParameters.AddNewIntegerParameter( "Flags", 0 );
// Job ausführen
oJob.Execute();
// XML aus der Ausgabedatei ermitteln
// Beim Auslesen wird das XML-Zeichenkodierung
// berücksichtigt.
// Nach der Beendigung dieses Aufrufs wird die übergebene
// Datei automatisch gelöscht.
WScript.Echo( oJob.OutputFileParameters(1).XML );
}
catch( ex )
{
// aufgetretene Fehler ausgeben
WScript.Echo( ex.description );
}
VB-Scriptversion
Option Explicit
Dim oServer, oSession, oJob,o
Set oServer = CreateObject( "OxSvrSpt.Server" )
set oSession = oServer.Login( "root", "optimal", "localhost", "4000" )
set oJob = oSession.NewJob( "dms.GetObjDef" )
oJob.InputParameters.AddNewIntegerParameter "Flags", 0
oJob.Execute
msgbox oJob.OutputFileParameters(1).XML,,"Objektdefinition"
2.6. Binärdatenverarbeitung
Für die Verarbeitung von Binärdaten in den Ein- und Ausgabeparametern stehen mehrere
Möglichkeiten zur Verfügung. Sowohl die IParameter -, als auch die IFileParameter -Objekte
stellen hierfür zwei unterschiedliche Verfahren zur Verfügung.
-
1. Zugriff über Chunks (Byte-Arrays)
-
2. Zugriff über einen Stream (
IStream)
'
' Beispiel-Script zum byteweisen Auslesen von Binärdaten über die
' GetChunk-Methode eines Parameters.
'
Option Explicit
Dim oServer, oSession, oJob, oFileParameter
Set oServer = CreateObject("OxSvrSpt.Server")
set oSession = oServer.Login("root", "optimal", "localhost", 4000)
Set oJob = oSession.NewJob("dummy")
Set oFileParameter = oJob.InputFileParameters.AddTempFile()
oFileParameter.xml = "<?xml version='1.0' encoding='utf-16' ?><abc>äöü</abc>"
' Stream zum Lesen auf die Anfangsposition setzen
oFileParameter.ResetStream
Dim abReadData
abReadData = oFileParameter.GetChunk(oFileParameter.ActualSize)
Dim cPos
For cPos = LBound(abReadData) + 1 To UBound(abReadData)
Dim bData
bData = Ascb(Midb(abReadData, cPos, 1))
WScript.Echo(cPos & ":" & bData)
next
WScript.Echo("fertig")
2.7. Fehlerbehandlung
In allen Fehlerfällen wirft die OxSvrSpt -Bibliothek einen COM-Fehler. Darüber hinaus werden die
Fehler sowohl beim IServer -, als auch beim IJob -Objekt zusätzliche in die IError -Collection
eingetragen. In beiden Fällen besteht die Möglichkeit, dass mehr als ein Fehler zurückgeliefert wird.
Der COM-Fehler entspricht dabei immer dem ersten Fehler in der IError -Collection.
2.8. Aufbauplan
Die folgenden Abbildungen zeigen die Sturktur der OxSvrSpt:
Legende für den Ablaufplan
OxSvrSpt -Bibliothekt
Sessoin -Objekt
Job -Objekt
Properties D -Collection
Licenses -Collection
OutputParameters D -Collection
InputParameters -Collection
OutputFileParameters -Collection
InputFileParameters -Collection
Errors -Collection
Parameter -Objekt
FileParameter -Objekt
2.9. Anbringen von Wasserzeichen an PDF-Dokumente
Alternativ zu der Wasserzeichendruckkennzeichnung von PDF-Dokumenten über die
Einstellungen in enaio® administrator, gibt es die Möglichkeit Wasserzeichen mit Nutzung von
erweiterten Möglichkeiten anzubringen. Dazu muss als Zielformat 'pdf' angeben werden und der
Job -Parameter 'Watermark' mit 1 gesetzt sein. Alle folgenden Parameter bestehen aus einem Präfix
und einem Postfix, der Parameter 'HeaderText' hat also den Präfix 'Header' und den Postfix
'Text' . Die Parameter sind im Folgenden detailliert beschrieben:
Es können vier Bereiche für Textangaben definiert werden mit folgenden Parameter-Präfixen: 'Header', 'Footer', 'Side' und 'Center'.
Die folgenden Parameter-Postfixe sind möglich bei denen jeweils einer der oben genannten
Präfixen verwendet warden muss. Alle Parameter-Postfixe sind optional, aber mindestens ein
' *Text' Parameter muss angeben werden, damit das erweiterte Wasserzeichen angebracht wird,
ansonsten werden die enaio® administrator Einstellungen verwendet. Im Folgenden sind die
Postfixe aufgeführt:
Text (STRING):
Text der aufgebracht werden soll. Wird kein Text angegeben werden alle anderen Angaben zu dem entsprechenden Wasserzeichentyp ignoriert und kein Text aufgebracht.
Folgende Ersetzungsvariablen sind im angegeben Text möglich:
Variable Beschreibung
ZEIT aktuelle Uhrzeit
DATUM aktuelles Datum
BENUTZER Benutzername
BENUTZER-VOLLSTAENDIG vollständiger Benutzername
COMPUTER-IP IP-Adresse
COMPUTER-GUID GUID-des Rechners
COMPUTER-NAME Name des Rechners
TextColor (INT):
0 – 7 (Standard ist 0) dabei gilt:
Wert Beschreibung
0 Schwarz
1 Weiß
2 Gelb
3 Rot
4 Grün
5 Magenta
6 Cyan
7 Blau
Alternativ dazu:
TextColorRGB (STRING): 0-255,0-255,0-255 (R,G,B–Werte für eine Farbe durch Komma getrennt)
Font (STRING): Helvetica…, Times…, oder Courier… (Standard ist Helvetica)
FontBold (INT): 0 oder 1 ( 1→ Bold, 0 → Standard)
FontItalic (INT): 0 oder 1 ( 1→ Italic, 0 → Standard)
FontSize (INT): Fontgröße in Punkten (Standard ist 10)
Über folgende Parameter kann die Position des Texts festgelegt werden:
Position (INT): 0-8 (Standard ist 0) für 'Header' 0, für 'Footer' 1, für 'Side' 4 und für 'Center' 8
Wert Beschreibung
0 Links-Oben
1 Links-Unten
2 Rechts-Oben
3 Rechts-Unten
4 Links-Zentriert
5 Rechts-Zentriert
6 Zentriert-Oben
7 Zentriert-Unten
8 Zentriert-Zentriert
OffsetX (INT): (Standard ist 0) Offset in mm bezüglich linke Blattkante.
OffsetY (INT): (Standard ist 0) Offset in mm bezüglich obere Blattkante.
PlaceType (INT): 0-2 (Standard ist 0) 0 → Alle Seiten, 1 → ungerade Seiten, 2→ gerade Seiten
FillStyle (INT): 0-2 (Standard ist 0) 0 → Gefüllt, 1 → nur Schattenriss, 2 → gefüllter Schattenriss
Angle (INT): 0-360 (Standard ist 0) Drehung in Grad
Beispiel für einen Aufruf:
Set oServerJob = o.CreateServerJob("cnv.ConvertDocument")
oServerJob.AddFile "myfile" (Datei die konvertiert werden soll)
oServerJob.AddInputParameter "DestinationFormat", "pdf", 1
oServerJob.AddInputParameter "HeaderText", "Kopfzeile", 1
oServerJob.AddInputParameter "HeaderFont", "Courier", 1
oServerJob.AddInputParameter "HeaderFontSize", "10,0", 4
oServerJob.AddInputParameter "HeaderTextColor", "3", 2
oServerJob.AddInputParameter "FooterText", " Erstellt durch #BENUTZER#, #DATUM#,
#ZEIT#", 1
oServerJob.AddInputParameter "FooterFontSize", "14,0", 4
oServerJob.AddInputParameter "FooterFontBold", "1", 2
oServerJob.AddInputParameter "FooterFontItalic", "1", 2
oServerJob.AddInputParameter "FooterTextColorRGB", "255,0,0", 1
Anm.: Statt Präfix 'Header' und 'Footer' wie in diesem Beispiel sind auch 'Side' oder 'Center' möglich.
Beispiel für die Positionierung mit Typ 'Center':
oServerJob.AddInputParameter "CenterAngle", "45", 2
oServerJob.AddInputParameter "CenterOffsetX", "-10", 2
oServerJob.AddInputParameter "CenterOffsetY", "10", 2
oServerJob.AddInputParameter "CenterPlaceType", "1", 1
oServerJob.AddInputParameter "CenterFillStyle", "2", 1
Anm.: Auf Einhaltung von Gross- und Kleinschreibung ist zu achten. ( Job -Parameter sind generell
Case sensitive).
3. Datenstrukturen
3.1. _INotificationEvents
Beschreibung:
_INotifiactionEvent ist eine Event-Schnittstelle für die Verarbeitung von Notifications .
import "OxSvrSpt.idl"
Öffentliche Methoden:
void Notify([in, out] INotifyJob **Job)
Parameter:
[in, out]: Job Schnittstelle für den Zugriff auf die Ein- und Ausgabeparameter der
Notification. Diese verhält sich äquivalent zur IJob -Schnittstelle.
4. Klassenhierarchie
-
_INotifiactionEvent -
IError -
IErrors -
INotifyErrors -
IFileParameter -
IHelper -
IInputFileParameters -
INotifyOutputFileParameters -
IInputParameters -
INotifyOutputParameters -
IJob -
ILicenses -
ILogger -
INotifyJob -
IOutputFileParameters -
INotifyInputFileParameters -
IOutputParameters -
IInputParameters -
IParameter -
IProperties -
IProperty -
IServer -
ISession