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 bestehenden SessionGUID .

  • 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 bestehende DefaultSession . DefaultSessions können mit den zuvor beschriebenen Methoden erstellt werden, indem Sie den Parameter DefaultSession auf True setzt.

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