Document Distributor

Werbung
Document Distributor
Skriptbeispiele
Klicken Sie hier, um diese oder andere Dokumentationen zu Lexmark Document Solutions
anzuzeigen oder herunterzuladen.
Oktober 2004
www.lexmark.com
Ausgabe: Oktober 2004
Der folgende Abschnitt gilt nicht für Länder, in denen die nachstehenden Bestimmungen nicht mit dem
geltenden Recht vereinbar sind. LEXMARK INTERNATIONAL, INC. STELLT DIESE VERÖFFENTLICHUNG
OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG ZUR VERFÜGUNG,
EINSCHLIESSLICH, JEDOCH NICHT BESCHRÄNKT AUF, DIE STILLSCHWEIGENDEN GEWÄHRLEISTUNGEN
DER HANDELSÜBLICHKEIT UND DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. In einigen Ländern sind
Ausschlüsse ausdrücklicher oder stillschweigender Gewährleistung für bestimmte Transaktionen nicht zulässig.
Diese Erklärung betrifft Sie deshalb möglicherweise nicht.
Diese Dokumentation enthält möglicherweise technische Ungenauigkeiten oder typographische Fehler. An den
enthaltenen Informationen werden in regelmäßigen Abständen Änderungen vorgenommen. Diese Änderungen
werden in späteren Ausgaben berücksichtigt. Verbesserungen oder Änderungen an den beschriebenen Produkten
oder Programmen können jederzeit vorgenommen werden.
Kommentare zu dieser Veröffentlichung können an folgende Adresse gerichtet werden: Lexmark International, Inc.,
Department F95/032-2, 740 West New Circle Road, Lexington, Kentucky 40550, USA. In Großbritannien und Irland
richten Sie Ihre Kommentare an Lexmark International Ltd., Marketing and Services Department, Westhorpe House,
Westhorpe, Marlow Bucks SL7 3RQ. Lexmark darf alle von Ihnen bereitgestellten Informationen in jeder von Lexmark
als angemessen erachteten Weise verwenden oder verbreiten, ohne daß Lexmark daraus Verpflichtungen gegenüber
Ihrer Person entstehen. In den USA können Sie unter der Telefonnummer 1-800-553-9727 zusätzliche
produktbezogene Dokumentationen erwerben. In Großbritannien und Irland wählen Sie +44 (0)8704 440 044. In allen
anderen Ländern wenden Sie sich bitte an Ihren Händler.
Durch Bezugnahme auf bestimmte Produkte, Programme oder Dienstleistungen in der vorliegenden
Dokumentation übernimmt der Hersteller keine Gewährleistung für die Verfügbarkeit dieser Produkte, Programme
oder Dienstleistungen in allen Ländern seines Tätigkeitsbereichs. Die Nennung eines Produkts, eines Programms
oder einer Dienstleistung besagt weder ausdrücklich noch stillschweigend, daß ausschließlich dieses Produkt, dieses
Programm oder diese Dienstleistung verwendet werden kann. Andere Produkte, Programme bzw. Dienstleistungen
mit vergleichbarer Funktionalität können ebenfalls verwendet werden, sofern kein Verstoß gegen das Urheberrecht
vorliegt. Die Bewertung und Überprüfung des Betriebs mit anderen als den vom Hersteller ausdrücklich genannten
Produkten, Programmen oder Dienstleistungen durch den Benutzer erfolgt auf eigene Verantwortung.
ImageQuick, Optra, Lexmark und Lexmark mit der roten Raute sind in den USA und/oder anderen Ländern
eingetragene Marken von Lexmark International, Inc.
PostScript® ist eine eingetragene Marke von Adobe Systems Incorporated.
Andere Marken sind Eigentum der jeweiligen Inhaber.
© Copyright 2004 Lexmark International, Inc.
Alle Rechte vorbehalten.
RECHTE DER REGIERUNG DER VEREINIGTEN STAATEN VON AMERIKA
Die im Rahmen dieser Vereinbarung zur Verfügung gestellte Software und Dokumentation ist kommerzielle
Computersoftware und Dokumentation, die ausschließlich mit privaten Mitteln entwickelt wurde.
Inhaltsverzeichnis
Kapitel 1: Einführung .................................................................... 1
Kapitel 2: Document Distributor-Skripts ..................................... 2
Beispiel 1: Speichern in einer Datei .......................................................... 2
Beispiel 2: Drucken eines Dokuments ...................................................... 3
Beispiel 3: Aufforderungen und Senden einer E-Mail ............................... 5
Beispiel 4: Speichern von Daten in einer Datenbank ............................... 8
Beispiel 5: Trennen von Seiten mit Barcodes ......................................... 12
Beispiel 6: Aufforderungen für Fortgeschrittene I ................................... 15
Beispiel 7: Aufforderungen für Fortgeschrittene II .................................. 19
Kapitel 3: Document Producer-Skripts...................................... 23
Beispiel 8: Zusammenführen von Daten und Drucken eines Formulars 23
Beispiel 9: Zusammenführen von Daten und Faxen eines Formulars .... 25
Kapitel 4: Document Portal-Skripts ........................................... 27
Beispiel 10: Drucken eines leeren Formulars ......................................... 27
Beispiel 11: Auffordern des Benutzers und Drucken eines
leeren Formulars .................................................................................... 29
Anhang A: ODBC-Einrichtung ..................................................... 31
Anhang B: FormSet-Einrichtung ................................................. 32
iii
1
Einführung
Dieses Handbuch enthält Beispiele der Konstrukte und Objekte der von der Lexmark Document
Solutions-Suite verwendeten Skriptsprache. Diese Beispiele befinden sich in drei Kapiteln zu den
verschiedenen Komponenten der Suite. Sie können also alle Beispiele durchgehen oder sich auf
die Beispiele zu Ihrer Anwendung beschränken.
Alle Beispiele in diesem Handbuch sind im Lieferumfang des Workflow Composer enthalten.
Sie sollten über Zugang zum Workflow Composer und zum Server Manager oder Document
Portal-Administrator verfügen, so daß Sie mit diesen Skripts arbeiten können, wenn Sie die im
Buch beschriebenen Aufgaben ausführen. Wenn Sie die Skripts auf den Document Server laden,
werden Sie aufgefordert, alle zur Ausführung der Skripts erforderlichen umgebungsspezifischen
Informationen einzugeben. Wenn beispielsweise die IP-Adresse des SMTP-Servers angegeben
werden muß, wird „local.mailserver“ im Skript angezeigt. Dieser Platzhalter wird durch den von Ihnen
eingegebenen Wert ersetzt.
Einführung
1
2
Document Distributor-Skripts
Beispiel 1: Speichern in einer Datei
Übersicht: Speichern des gescannten Dokuments in einer Datei.
Details: Ein Mitarbeiter muß Rechnungen mit einem MFP scannen und im lokalen Dateisystem
speichern.
Skript:
with SaveToFile
.input=original.document
.Path="c:\lexmark\invoice.tif"
.AppendTimestamp=TRUE
.CreateDirectory=TRUE
.Go()
endwith
So führen Sie dieses Skript aus:
1 Laden Sie es mit Hilfe des Workflow Composer oder des Server Manager auf den Server.
2 Erstellen Sie mit dem Server Manager ein Profil auf einem MFP.
Hinweis: Jeder gespeicherten Datei wird ein eindeutiger Name zugewiesen, wenn
Sie „AppendTimestamp“ auf TRUE setzen. Der generierte Dateiname lautet:
c:\lexmark\invoice_MON_TT_JJJJ_HH_MM_SS_MS.tif
Beachten Sie, daß für das gesamte Skript derselbe Zeitstempel verwendet wird. Wenn also
„SaveToFile“ im selben Skript mehrere Male ausgeführt wird, wird derselbe Zeitstempel verwendet.
In diesem Fall können Sie den Zeitstempel manuell erstellen, indem Sie die Eigenschaft „usertime“
des Originals verwenden und einen eindeutigen Wert anhängen. Ein Beispiel hierfür finden Sie
in Beispiel 5, „Trennen von Seiten mit Barcodes“.
Wenn Sie die Eigenschaft „CreateDirectory“ auf TRUE setzen, werden erforderlichenfalls die
Verzeichnisse erstellt, die noch nicht vorhanden sind. Dies ist besonders nützlich, wenn der
Zeitstempel selbst als Teil des Verzeichnisnamens verwendet wird.
Document Distributor-Skripts
2
Beispiel 2: Drucken eines Dokuments
Übersicht: Drucken eines gescannten Dokuments auf einem anderen Drucker.
Details: Ein Mitarbeiter muß ein internes Fax von einem Firmenstandort an einen anderen senden.
Da an jedem Standort des Unternehmens Drucker zur Verfügung stehen, die über das
unternehmensweite LAN erreichbar sind, druckt dieses Skript direkt auf die Drucker, anstatt ein Fax
zu senden. Dadurch werden eine qualitativ hochwertigere Ausgabe und niedrigere Telefonkosten
gewährleistet. Zusätzlich wird dem Ausdruck der Zeitstempel hinzugefügt, um ihm das Aussehen
eines Faxes zu verleihen.
Skript:
1 Unterteilen Sie den Wert „usertime“ mit Hilfe der Methode „separate“ in einzelne Abschnitte.
Erstellen Sie dann den Datenstring, der auf jeder Seite des Ausdrucks erscheint. Das Format
des Strings lautet „Gesendet von IP-Adresse am Datum um Zeit“.
stringarray time = original.usertime.Separate("_")
string stamp = "Gesendet von " + original.userip
stamp.Concatenate(" am " + time[2] + " " + time[3] + " " + time[4])
stamp.Concatenate(" um " + time[5] + ":" + time[6])
2 Verwenden Sie die Aktion „ImageText“, um die Zeitstempelinformationen allen gesendeten
Seiten an der rechten unteren Ecke hinzuzufügen.
with ImageText
.input=original.document
.Orientation=LDD_ORIENTATION_PORTRAIT
.Text=stamp
.Direction=LDD_IMGTEXTDIR_HORIZONTAL
.Font=LDD_IMGTEXTFONT_ARIAL
.Color=LDD_IMGTEXTCOLOR_BLACK
.Position=LDD_IMGTEXTPOS_BOTTOMRIGHT
.AllPages=TRUE
.Size=10
.Bold=TRUE
.Italic=TRUE
.Underline=FALSE
.Go()
endwith
3 Verwenden Sie die Aktion „ConvertToDocument“, um das TIFF-Bild in PostScript
umzuwandeln, so daß es gedruckt werden kann. Beachten Sie, daß die Ausgabe der Aktion
„ImageText“ verwendet wird, um das TIFF-Bild mit dem Zeitstempel zu erzeugen.
with ConvertToDocument
.input=ImageText.output
.Format=LDD_DOCFORMAT_PS
.AllPages=TRUE
.PaperSize=LDD_PAPERSIZE_LETTER
.Orientation=LDD_ORIENTATION_AUTO
.Go()
endwith
Document Distributor-Skripts
3
4 Verwenden Sie die Aktion „PrintJob“, um die PostScript-Datei an den angegebenen Drucker
zu senden. Wenn der Drucker mit einer ImageQuick-Option ausgerüstet ist, kann die
TIFF-Datei direkt und ohne vorherige Konvertierung in PostScript an den Drucker gesendet
werden. Die lokale Einstellung printerip mit einem auf „Text“ gesetzten „Typ“ wurde zur
Verwendung innerhalb der Eigenschaft .IPAddress der Aktion „PrintJob“ definiert. Weitere
Informationen finden Sie in der Hilfe zu den lokalen Einstellungen in der Workflow
Composer-Anwendung.
with PrintJob
.input=ConvertToDocument.output
.IPAddress=local.printerip
.Copies=1
.SetWaitTimeout(FALSE)
.PaperSource=LDD_PRINTER_DEFAULT
.PaperSize=LDD_PRINTER_DEFAULT
.OutputBin=LDD_PRINTER_DEFAULT
.Duplex=LDD_DUPLEX_OFF
.Orientation=LDD_PRINTER_DEFAULT
.Nup=LDD_NUP_OFF
.Collate=FALSE
.Staple=FALSE
.HolePunch=FALSE
.TonerSaver=FALSE
.SetConfidentialPrint(FALSE)
.Go()
endwith
So führen Sie dieses Skript aus:
1 Laden Sie es mit Hilfe des Workflow Composer oder des Server Manager auf den Server.
2 Konfigurieren Sie die zu verwendende IP-Adresse des Druckers über die lokalen
Einstellungen.
3 Erstellen Sie ein Profil auf einem MFP.
Document Distributor-Skripts
4
Beispiel 3: Aufforderungen und Senden einer E-Mail
Übersicht: Umwandeln eines Dokuments in ein Textdokument mit Hilfe der optischen
Zeichenerkennung (OCR) und Senden des Dokuments an den Benutzer per E-Mail.
Details: Ein Unternehmen möchte es seinen Mitarbeitern ermöglichen, Originalvorlagen
einzuscannen und in eine Textdatei umzuwandeln, ohne auf jedem Firmencomputer OCR-Software
installieren zu müssen. Dieses Skript fragt die Benutzer nach ihrer E-Mail-Adresse und ob sie das
Dokument im RTF-Format (gängiges Format für die meisten Textverarbeitungsanwendungen) oder
im PDF-Format erhalten möchten. Das Skript konvertiert das Dokument und sendet es per E-Mail an
den Benutzer.
Skript:
1 Dieses Skript stellt die Fragen an den Endbenutzer, die im folgenden erstellt werden. Die
erste Frage ist ein Text (String-Format) und fragt nach der E-Mail-Adresse. Die zweite Frage
ist eine Auswahlliste mit einer Auswahlmöglichkeit und fragt nach dem Dateiformat.
stringprompt email
email.SetPromptText("Geben Sie Ihre E-Mail-Adresse ein")
stringprompt format
with format
.SetPromptText("Wählen Sie ein Dateiformat")
.AddPromptOption("RTF")
.AddPromptOption("PDF")
endwith
2 Damit ist die Vorbereitung der Fragen abgeschlossen. Der „prompt“-Block wird jetzt
verwendet, um die Fragen zu stellen. Wenn der Benutzer dieses Skript wählt, wird dieser
Teil des Skripts vor dem Scanvorgang ausgeführt. Da die Antworten auf die Fragen keine
Auswirkungen auf die darauffolgenden Fragen haben und nicht überprüft werden, können
die Fragen in einem Schritt gestellt werden.
prompt
step "prompts"
ask(email)
ask(format)
laststep
endprompt
3 Sobald die Fragen gestellt wurden, wird das Dokument gescannt und genauso übermittelt
wie Aufträge ohne Aufforderungen. Die Ausführung des Skripts wird an diesem Punkt
fortgesetzt, wenn der Auftrag neu gestartet wird.
Document Distributor-Skripts
5
4 Prüfen Sie das ausgewählte Format, und konvertieren Sie die Eingabedatei entsprechend
in das PDF- bzw. RTF-Format. Die Ausgabe wird in der Variablen ocr gespeichert, so daß
sie für die E-Mail-Aktion verwendet werden kann.
doc ocr
if (format == "PDF")
with ImageToPDF
.input=original.document
.Language=LDD_LANG_ENGLISH
.TextType=LDD_TEXTTYPE_NORMAL
.Format=LDD_PDFFORMAT_IMAGEONTEXT
.PictureResolution=300
.PictureQuality=75
.AllPages=TRUE
.Go()
ocr = .output
endwith
else
with ImageToRTF
.input=original.document
.Language=LDD_LANG_ENGLISH
.TextType=LDD_TEXTTYPE_NORMAL
.PaperSize=LDD_PAPERSIZE_LETTER
.KeepColor=TRUE
.KeepPictures=TRUE
.AllPages=TRUE
.Go()
ocr = .output
endwith
endif
5 Mit der Aktion „EmailSMTP“ wird die E-Mail jetzt mit der OCR-Ausgabe als Anhang gesendet.
Die E-Mail-Adresse wurde vom Endbenutzer eingegeben, als der Auftrag ausgelöst wurde.
Die IP-Adresse des SMTP-Servers wurde als lokale Einstellung definiert. Wenn das Skript
auf den Server geladen wird, fordert der Server Manager den für diese Eigenschaft zu
verwendenden Wert an.
with EmailSMTP
.Server=local.emailserver
.To=email
.From=email
.Subject="Ihr gescanntes Dokument"
.Message="Ihr gescanntes Dokument wurde in dem von Ihnen gewünschten Format"_
"angehängt."
.CharacterSet=LDD_SMTPCHARSET_US
.Attachments=ocr
.Go()
endwith
Document Distributor-Skripts
6
So führen Sie dieses Skript aus:
1 Laden Sie es mit Hilfe des Workflow Composer oder des Server Manager auf den Server.
2 Konfigurieren Sie die SMTP-Server-Adresse über die lokalen Einstellungen.
3 Zur Verwendung dieses Skripts auf einem MFP muß dieser über einen Sensorbildschirm
verfügen. Wenn dies nicht der Fall ist, wählen Sie Select 'N' Send oder Print 'N' Send. Wenn
ein Sensorbildschirm vorhanden ist, erstellen Sie ein Profil, das eine Datei im TIFF-Format
mit einer Auflösung von 300 dpi und einer Deckung von 4 ausgibt. Hiermit erhalten Sie
optimale OCR-Ergebnisse.
Hinweis: Die Aktion „EmailSMTP“ kann durch bestimmte GroupWare-Objekte wie
Lotus Notes (EmailNotes), Microsoft Exchange (EmailExchange) und Novell
GroupWise (GWMail) ersetzt werden. Der größte Vorteil bei der Verwendung
dieser Objekte besteht darin, daß das Skript dadurch auf die speziellen
Adreßbuch- und GroupWare-Funktionen dieser Objekte zugreifen kann.
Der Einsatz dieser Objekte ist jedoch mit weiteren Anforderungen bei der
Einrichtung verbunden. In den meisten Fällen können GroupWare-Server
so konfiguriert werden, daß sie SMTP-E-Mails akzeptieren. Wenn für das
Skript keine Sonderfunktionen erforderlich sind, ist die einfachere Aktion
„EmailSMTP“ ausreichend.
Document Distributor-Skripts
7
Beispiel 4: Speichern von Daten in einer Datenbank
Übersicht: Speichern des gescannten Dokuments in einer Datenbank.
Details: Eine Personalabteilung ist verantwortlich für die Verwaltung der Lebensläufe. Mit diesem
Skript wird der Lebenslauf in einer Datenbank gespeichert. Außerdem wird der Lebenslauf in Text
konvertiert, der ebenfalls in der Datenbank gespeichert wird. Durch das Speichern der Textdaten
kann in der Datenbank nach bestimmten Stichwörtern gesucht werden, wobei eine Liste aller
Lebensläufe angezeigt wird, die mit den Suchkriterien übereinstimmen. Da der Lebenslauf auch in
seiner ursprünglichen Form abgelegt ist, kann er angezeigt, gedruckt oder an einen anderen
Standort weitergeleitet werden.
•
Für Datenbanken mit Binary Large Objects (BLOBs) sollte Skript 4A verwendet werden. BLOBs
werden von Datenbanken verwendet, in denen komplette Dateien gespeichert werden können.
Beispiele solcher Datenbanken sind Oracle, Microsoft SQL Server und IBM DB2.
•
Für Datenbanken wie Microsoft Access, die BLOBs nicht unterstützen, sollte Skript 4B verwendet
werden. Um dieselbe Aufgabe auszuführen, muß das Dokument im lokalen Dateisystem gespeichert
werden. Der Pfad der Datei wird dann in der Datenbank gespeichert und kann später abgerufen werden.
Skript 4A:
1 Konvertieren Sie das übermittelte Dokument in Text. Dieser Text wird in der Datenbank
gespeichert und mit diesem Lebenslauf verknüpft, so daß er durchsucht werden kann.
with ImageToText
.input=original.document
.Language=LDD_LANG_ENGLISH
.TextType=LDD_TEXTTYPE_NORMAL
.OneLine=TRUE
.SeparateParagraphs=TRUE
.PageBreaks=FALSE
.AppendEOF=FALSE
.AllPages=TRUE
.Go()
endwith
2 Lesen Sie den mit Hilfe der Aktion „ImageToText“ generierten Text mit dem Objekt „textfile“
ein, und speichern Sie ihn in einem String.
textfile tf
string ocrText
tf.Open(ImageToText.output)
ocrText = tf.Read(tf.Size())
tf.Close()
Document Distributor-Skripts
8
3 Fügen Sie den Lebenslauf zusammen mit dem Text in die Datenbank ein, so daß er später
abgerufen werden kann. Die Eigenschaften für die Informationen in der Datenbank werden
über die lokalen Einstellungen konfiguriert, wenn das Skript auf den Server geladen wird.
with ODBCWrite
.DataSource=local.DataSource
.TableName=local.TableName
.LogonName=local.LogonName
.LogonPassword=local.LogonPassword
.AssignValue("ScanDate","")
.AssignValue("OCRText",ocrText)
.AssignValue("Resume",original.document)
.Go()
endwith
So führen Sie dieses Skript aus:
1 Richten Sie auf dem Server die zu verwendende Datenbank ein. Die Dateien
„LDDOracleTable.sql“ und „LDDSQLServerTable.sql“ dienen zur Erstellung der
Beispieltabellen in Oracle und Microsoft SQL Server. Diese Dateien befinden sich in dem mit
Workflow Composer zusammen installierten Verzeichnis mit Beispielskripts. Konfigurieren
Sie nach Einrichtung der Datenbank die ODBC-Verbindung. Weitere Informationen hierzu
finden Sie in Anhang A: ODBC-Einrichtung.
2 Laden Sie es mit Hilfe des Workflow Composer oder des Server Manager auf den Server.
3 Konfigurieren Sie die ODBC-Verbindungsdaten über die lokalen Einstellungen.
4 Erstellen Sie ein Profil auf einem MFP.
Document Distributor-Skripts
9
Skript 4B:
1 Konvertieren Sie das übermittelte Dokument in Text. Dieser Text wird in der Datenbank
gespeichert und mit diesem Lebenslauf verknüpft, so daß er durchsucht werden kann.
with ImageToText
.input=original.document
.Language=LDD_LANG_ENGLISH
.TextType=LDD_TEXTTYPE_NORMAL
.OneLine=TRUE
.SeparateParagraphs=TRUE
.PageBreaks=FALSE
.AppendEOF=FALSE
.AllPages=TRUE
.Go()
endwith
2 Lesen Sie den mit Hilfe der Aktion „ImageToText“ generierten Text mit dem Objekt „textfile“
ein, und speichern Sie ihn in einem String.
textfile tf
string ocrText
tf.Open(ImageToText.output)
ocrText = tf.Read(tf.Size())
tf.Close()
3 Legen Sie den Pfad fest, unter dem die Datei gespeichert werden soll. Die Datei wird
im lokalen Dateisystem im Verzeichnis c:\lexmark gespeichert. Der Dateiname lautet
resume_timestamp.tif.
string filepath = "c:\lexmark\resume" + original.usertime + ".tif"
4 Da das Dokument selbst nicht in die Datenbank eingefügt werden kann, speichern Sie es
im lokalen Dateisystem. „AppendTimestamp“ wird auf FALSE gesetzt, da der Zeitstempel im
vorhergehenden Schritt manuell hinzugefügt wurde. „CreateDirectory“ wird auf TRUE
gesetzt, so daß c:\lexmark erforderlichenfalls automatisch erstellt wird.
with SaveToFile
.input=original.document
.AppendTimestamp=FALSE
.Overwrite=FALSE
.Path=filepath
.CreateDirectory=TRUE
.Go()
endwith
Document Distributor-Skripts
10
5 Geben Sie den Dateinamen mit dem Text in die Datenbank ein, so daß er später abgerufen
werden kann. Die Eigenschaften für die Informationen in der Datenbank werden über die
lokalen Einstellungen konfiguriert, wenn das Skript auf den Server geladen wird.
with ODBCWrite
.DataSource=local.DataSource
.TableName=local.TableName
.LogonName=local.LogonName
.LogonPassword=local.LogonPassword
.AssignValue("ScanDate","")
.AssignValue("OCRText",ocrText)
.AssignValue("ResumeFile",filepath)
.Go()
endwith
So führen Sie dieses Skript aus:
1 Richten Sie auf dem Server die zu verwendende Datenbank ein. Die Microsoft
Access-Datenbank „resumes.mdb“ wird für dieses Beispiel bereitgestellt. Diese Datei
befindet sich in dem mit Workflow Composer installierten Verzeichnis mit Beispielskripts.
Konfigurieren Sie die ODBC-Verbindung mit der von Ihnen eingerichteten oder der zur
Verfügung gestellten Datenbank. Weitere Informationen hierzu finden Sie in Anhang A.
2 Laden Sie es mit Hilfe des Workflow Composer oder des Server Manager auf den Server.
3 Konfigurieren Sie die ODBC-Verbindungsdaten über die lokalen Einstellungen.
4 Erstellen Sie ein Profil auf einem MFP.
Document Distributor-Skripts
11
Beispiel 5: Trennen von Seiten mit Barcodes
Übersicht: Verwenden einer Barcode-Trennseite zum Unterteilen von Aufträgen verschiedener
Länge in separate Dateien.
Details: Ein Mitarbeiter muß mehrere Dokumentensätze scannen und verarbeiten. Er könnte jeden
Satz einzeln scannen, es ist jedoch einfacher (und empfehlenswerter), alle ohne Unterbrechung zu
scannen. Dies wird durch die Verwendung einer Barcode-Trennseite ermöglicht, die den Anfang
eines neuen Satzes kennzeichnet. Bei Verwendung der Trennseite kann jeder Satz beliebig viele
Seiten umfassen. Dieses Skript sucht auf jeder Seite des gescannten Dokuments nach einem
Barcode. Wenn es einen Barcode erkennt, kennzeichnet es das Ende des vorhergehenden Satzes,
der in einer Datei gespeichert wird, sowie den Anfang eines neuen Satzes.
Skript:
1 Geben Sie alle in diesem Skript verwendeten Variablen an (Variablendeklaration).
doc separated
int i, startpage, lastpage
bool found
string fullpath, bcode
2 Unterteilen Sie das gescannte Dokument so, daß sich jede Seite in einer einzelnen Datei
befindet. Dies ist erforderlich, damit jede Gruppe von Seiten, aus der ein Satz besteht, später
in einer einzelnen Datei zusammengefaßt werden kann.
with ImageSeparate
.input=original.document
.AllPages=TRUE
.Go()
.separated = .output
endwith
3 Verwenden Sie die Variable „startpage“ zur Kennzeichnung der ersten Seite des aktuellen
Satzes. Initialisieren Sie die Variable für die erste Seite des gescannten Satzes.
startpage = 1
4 Durchlaufen Sie mit einer „loop“-Schleife alle übertragenen Seiten.
loop i from 1 to separated.GetNumberFiles()
5 Die Variable „found“ kennzeichnet, daß eine neue Gruppe von Seiten gespeichert werden
kann. Setzen Sie die Variable vor der Verarbeitung der einzelnen Seiten immer zurück.
found = false
Document Distributor-Skripts
12
6 Verwenden Sie die Aktion „BarcodeRead“, um festzustellen, ob sich ein Barcode auf dieser
Seite befindet.
with BarcodeRead
.Reset()
.Input=separated.GetFile(i)
.Type=LDD_BARCODE_CODE128
.Direction=LDD_BCDIR_HORIZ
.Quality=LDD_BCQUALITY_GOOD
.Fixed=FALSE
.Validate=TRUE
.Length=0
.PageNumber=1
.WholePage=TRUE
.Go()
bcode = .Results
endwith
7 Bei diesem Beispiel (und der bereitgestellten Beispieldatei) stellt der Barcode das Wort
„BREAK“ dar. Überprüfen Sie, ob es auf dieser Seite gefunden wurde.
if (bcode.Contains("BREAK")) then
8 Es wurde ein Barcode gefunden. Wenn die aktuelle Seite die Startseite ist (wenn
beispielsweise die Variable „startpage“ auf 1 gesetzt ist und die erste Seite des gescannten
Dokuments eine Trennseite ist), braucht keine Seite gespeichert zu werden. In diesem Fall ist
die Startseite des nächsten Satzes die nächste Seite. Anderenfalls wird die vorherige Seite
als letzte Seite des aktuellen Satzes definiert. (Die Startseite oder letzte Seite darf nicht mit
der Trennseite gleichgesetzt werden, da sonst die Trennseite selbst ebenfalls gespeichert
wird.) Kennzeichnen Sie mit Hilfe des Flags „found“, daß ein Satz mit Seiten gespeichert
werden muß.
if (startpage == i)
startpage = i + 1
else
lastpage = i - 1
found = true
endif
9 Es wurde kein Barcode gefunden. Überprüfen Sie, ob dies die letzte Seite des übermittelten
Dokuments ist. Wenn dies der Fall ist, muß es die letzte Seite des aktuellen Satzes sein.
Weisen Sie „lastpage“ die aktuelle Seite zu, und kennzeichnen Sie mit Hilfe des Flags
„found“, daß ein Satz mit Seiten gespeichert werden muß.
else
if (i == separated.GetNumberFiles()) then
lastpage = i
found = true
endif
endif
Document Distributor-Skripts
13
10 Wenn ein neuer Satz mit Seiten gefunden wurde, müssen diese gespeichert werden.
if (found == true) then
11 Mit der Aktion „ImageCombine“ fassen Sie den Satz von Seiten zu einem Dokument zusammen.
with ImageCombine
.input=separated.GetFileRange(startpage, lastpage)
.Format=LDD_IMGFORMAT_TIFG4
.ColorDepth=LDD_IMGDEPTH_BW
.Go()
endwith
12 Legen Sie den Namen der Datei zur Speicherung des neuen Dokuments fest. Die Sätze werden im
Verzeichnis c:\lexmark gespeichert. Der Dateiname lautet set_timestamp_page.tif. Da alle
in einem Auftrag gespeicherten Dateien denselben Zeitstempel aufweisen, wird die Nummer der
letzten Seite des Satzes hinzugefügt, um einen eindeutigen Dateinamen zu erhalten.
fullpath = "c:\lexmark\set" + original.usertime + "_" + _
lastpage.AsString() + ".tif"
13 Speichern Sie das neue Dokument auf der Festplatte. „AppendTimestamp“ wird auf FALSE gesetzt,
da der Zeitstempel im vorhergehenden Schritt manuell hinzugefügt wurde. „CreateDirectory“ wird auf
TRUE gesetzt, so daß erforderlichenfalls das Verzeichnis c:\lexmark erstellt wird.
with SaveToFile
.input = ImageCombine.output
.Path=fullpath
.AppendTimestamp=FALSE
.Overwrite=FALSE
.Go()
endwith
14 Der aktuelle Satz ist nun gespeichert. Geben Sie an, daß die Startseite des nächsten Satzes die
nächste Seite im Dokument sein soll. Setzen Sie „startpage“ nicht auf die aktuelle Seite, da sonst die
Trennseite als Teil des gespeicherten Dokuments im nächsten Satz enthalten ist.
startpage = i + 1;
endif
endloop
So führen Sie dieses Skript aus:
1 Laden Sie es mit Hilfe des Workflow Composer oder des Server Manager auf den Server.
2 Erstellen Sie auf einem MFP ein Profil, das eine Datei im TIFF-Format mit einer Auflösung
von 300 dpi und einer Deckung von 3 oder 4 ausgibt.
3 Die Datei (fullset.tif) befindet sich in dem mit Workflow Composer zusammen installierten
Verzeichnis mit Beispielskripts. Diese Datei kann gedruckt oder gescannt oder mit Select 'N'
Send übermittelt werden. Bei diesem Skript werden drei Dateien mit drei, zwei und vier
Seiten ausgegeben.
Document Distributor-Skripts
14
Beispiel 6: Aufforderungen für Fortgeschrittene I
Übersicht: Verwenden der Antworten auf Aufforderungsfragen, um die nächste Frage festzulegen.
Details: Dieses Skript ermöglicht es dem Benutzer, ein Dokument zu scannen und das Original bzw.
eine bearbeitbare Version hiervon per E-Mail zu senden. Dies ist die Erweiterung des Skripts in
Beispiel 3, Aufforderungen und Senden einer E-Mail. Der Benutzer wird nach einer E-Mail-Adresse
gefragt, an die das Dokument gesendet werden kann, und anschließend aufgefordert anzugeben,
ob er das Dokument mit Hilfe von OCR in ein Textdokument umwandeln möchte. Basierend auf der
daraus resultierenden Antwort folgt dann die Frage nach dem geeigneten Format. Obwohl dies ein
einfaches Skript ist, verdeutlicht es die Wirkung der Aufforderungen und wie die Antwort auf eine
Frage als Auslöser für die nächste Frage verwendet werden kann.
Skript:
1 Dieses Skript enthält die Fragen an den Endbenutzer, die im folgenden erstellt werden. Die
erste Frage ist ein Text (String-Format) und fragt nach der E-Mail-Adresse. Die zweite Frage
ist eine boolesche Aufforderung. Der Benutzer gibt an, ob das Dokument in ein Textdokument
umgewandelt werden soll; anderenfalls wird es als Bild gesendet.
stringprompt email
email.SetPromptText("E-Mail-Adresse zum Senden des Dokuments")
boolprompt ocr
ocr.SetPromptText("Klicken Sie, um das Dokument in ein Textdokument umzuwandeln.")
2 Wenn der Benutzer OCR wählt, wird diese Frage verwendet. Sie besteht aus einer
Auswahlliste mit einer Auswahlmöglichkeit zur Auswahl des Formats des OCR-Dokuments.
stringprompt ocrformat
with ocrformat
.SetPromptText("Wählen Sie ein OCR-Format")
.AddPromptOption("RTF")
.AddPromptOption("PDF (Durchsuchbar)")
endwith
3 Wenn der Benutzer nicht OCR wählt, wird diese Frage verwendet. Sie besteht aus einer
Auswahlliste mit einer Auswahlmöglichkeit zur Auswahl des Formats des Bilddokuments.
stringprompt imgformat
with imgformat
.SetPromptText("Wählen Sie ein Bildformat")
.AddPromptOption("TIFF")
.AddPromptOption("PDF (Nicht durchsuchbar)")
endwith
4 Damit ist die Vorbereitung der Fragen abgeschlossen. Der „prompt“-Block wird jetzt
verwendet, um die Fragen zu stellen. Wenn der Benutzer dieses Skript wählt, wird der
Teil des Skripts mit den Aufforderungen vor dem Scanvorgang ausgeführt. Da die nächsten
Fragen von den jeweiligen Antworten auf die vorherigen Fragen abhängen, werden mehrere
Schritte verwendet.
prompt
Document Distributor-Skripts
15
5 Dieser Schritt enthält zwei Fragen: die Frage nach der E-Mail-Adresse und die Frage, ob das
Dokument in ein Textdokument umgewandelt werden soll. Diese beiden Fragen können in
einem Schritt gestellt werden, da sie unabhängig voneinander sind. Der als Antwort auf die
OCR-Frage zurückgegebene Wert wird überprüft. Wenn OCR gewählt wurde, lautet die
nächste auszuführende Frage oformat; anderenfalls ist der nächste Schritt iformat. Jeder
Schritt muß die Direktive „nextstep“ oder „laststep“ enthalten.
step "email"
ask(email)
ask(ocr)
if (ocr == TRUE)
nextstep "oformat"
else
nextstep "iformat"
endif
6 Dieser Schritt wird ausgeführt, wenn der Benutzer OCR wählt. Der Benutzer wird
aufgefordert, das Format für das OCR-Dokument zu wählen. Da dies die letzte Frage in
diesem Pfad ist, wird hier die Direktive „laststep“ verwendet.
step "oformat"
ask(ocrformat)
laststep
7 Dieser Schritt wird ausgeführt, wenn der Benutzer nicht OCR wählt. Der Benutzer wird
aufgefordert, das Format für das Bild zu wählen. Da dies die letzte Frage in diesem Pfad ist,
wird hier die Direktive „laststep“ verwendet.
step "iformat"
ask(imgformat)
laststep
endprompt
8 Sobald die Fragen gestellt wurden, wird das Dokument gescannt und genauso übermittelt
wie Aufträge ohne Aufforderungen. Die Ausführung des Skripts wird an diesem Punkt
fortgesetzt, wenn der Auftrag neu gestartet wird. Überprüfen Sie die Aufforderung ocr,
um zu sehen, ob der Benutzer das Dokument in ein Textdokument umwandeln möchte.
doc attach
if (ocr == TRUE)
Document Distributor-Skripts
16
9 Der Benutzer möchte das Dokument in ein Textdokument umwandeln. Überprüfen Sie,
welches Format gewünscht ist, und führen Sie die Konvertierung durch. Speichern Sie die
Ausgabe der Konvertierung in der Variablen „attach“.
if (ocrformat == "RTF")
with ImageToRTF
.input=original.document
.Language=LDD_LANG_ENGLISH
.TextType=LDD_TEXTTYPE_NORMAL
.PaperSize=LDD_PAPERSIZE_LETTER
.KeepColor=TRUE
.KeepPictures=TRUE
.AllPages=TRUE
.Go()
attach =.output
endwith
else
with ImageToPDF
.input=original.document
.Language=LDD_LANG_ENGLISH
.TextType=LDD_TEXTTYPE_NORMAL
.Format=LDD_PDFFORMAT_IMAGEONTEXT
.PictureResolution=72
.PictureQuality=50
.AllPages=TRUE
.Go()
attach =.output
endwith
endif
10 Der Benutzer möchte das Dokument nicht in ein Textdokument umwandeln. Überprüfen Sie, welches
Bildformat gewünscht ist, und führen Sie gegebenenfalls die Konvertierung durch. Da das Dokument
als TIFF gescannt wurde, ist bei Auswahl dieses Formats keine Konvertierung erforderlich. Speichern
Sie die Ausgabe der Konvertierung in der Variable „attach“.
else
if (imgformat == "TIFF")
attach = original.document
else
with ConvertToDocument
.input=original.document
.Format=LDD_DOCFORMAT_PDF
.AllPages=TRUE
.PaperSize=LDD_PAPERSIZE_LETTER
.Orientation=LDD_ORIENTATION_AUTO
.Go()
attach =.output
endwith
endif
endif
Document Distributor-Skripts
17
11 Die Aktion „EmailSMTP“ wird nun verwendet, um die E-Mail mit der gewählten Ausgabe als Anhang zu
senden. Die E-Mail-Adresse wurde vom Endbenutzer eingegeben, als der Auftrag ausgelöst wurde.
Die IP-Adresse des SMTP-Servers wurde als lokale Einstellung definiert. Wenn das Skript auf den
Server geladen wird, fordert der Server Manager den Wert für diese Eigenschaft an.
with EmailSMTP
.Server=local.emailserver
.To=email
.cc=""
.bcc=""
.From=email
.ReplyTo=""
.Sender=""
.Subject="Gescanntes Dokument"
.Message="Anbei Ihr gescanntes Dokument/Ihre gescannten Dokumente"
.CharacterSet=LDD_SMTPCHARSET_US
.Attachments=attach
.Go()
endwith
So führen Sie dieses Skript aus:
1 Laden Sie es mit Hilfe des Workflow Composer oder des Server Manager auf den Server.
2 Konfigurieren Sie die SMTP-Server-Adresse über die lokalen Einstellungen.
3 Zur Verwendung dieses Skripts auf einem MFP muß dieser über einen Sensorbildschirm
verfügen. Wenn dies nicht der Fall ist, wählen Sie Select 'N' Send oder Print 'N' Send. Wenn
ein Sensorbildschirm vorhanden ist, erstellen Sie ein Profil, das eine Datei im TIFF-Format
mit einer Auflösung von 300 dpi und einer Deckung von 4 ausgibt. Hiermit erhalten Sie
optimale OCR-Ergebnisse.
Document Distributor-Skripts
18
Beispiel 7: Aufforderungen für Fortgeschrittene II
Übersicht: Überprüfung von Daten bei der Beantwortung von dynamischen Aufforderungen durch
den Endbenutzer.
Details: Ein Mitarbeiter muß Dokumente scannen, möchte diese aber anhand der Filiale, für die die
Dokumente bestimmt sind, sowie anhand der Abteilungen dieser Filiale trennen. Dieses Skript fragt
nach der Nummer der Filiale. Wenn die Nummer gültig ist, wird eine Liste der Abteilungen dieser
Filiale angezeigt. Anderenfalls erscheint eine Fehlermeldung, und der Benutzer wird erneut zur
Eingabe der Nummer der Filiale aufgefordert. Wenn alle erforderlichen Informationen eingegeben
wurden, wird das Dokument gescannt und unter dem entsprechenden Pfad im lokalen Dateisystem
gespeichert.
Skript:
1 Dieses Skript enthält die Fragen an den Endbenutzer, die im folgenden erstellt werden. Die
erste Aufforderung fragt nach einer Ganzzahl, die der Nummer der Filiale entsprechen muß.
Die zweite Aufforderung besteht aus einer Fehlermeldung, die angezeigt wird, wenn keine
gültige Nummer eingegeben wurde. Die dritte Aufforderung wird hier deklariert, jedoch erst
nach der Beantwortung der Frage erstellt. Alle im „prompt“-Block verwendeten
Aufforderungen und Variablen müssen angegeben werden, bevor der „prompt“-Block
eingegeben wird.
intprompt store
store.SetPromptText("Geben Sie die Filialnummer ein:")
messageprompt errmsg
errmsg.SetPromptText("Ungültige Filialnummer; geben Sie eine neue Nummer ein.")
stringprompt dept
string storename, item
2 Einige Fragen wurden vorbereitet und andere nur deklariert. Der „prompt“-Block wird jetzt
verwendet, um die Fragen zu stellen. Wenn der Benutzer dieses Skript wählt, wird dieser
Teil des Skripts vor dem Scanvorgang ausgeführt. Da die Antworten überprüft werden und
andere Fragen bedingen, werden mehrere Schritte verwendet.
prompt
Document Distributor-Skripts
19
3 Dieser Schritt enthält eine Frage: die Frage nach der Nummer der Filiale. Nach Angabe der
Nummer wird in der Datenbank überprüft, ob es sich um eine gültige Filialnummer handelt.
Wenn dies der Fall ist, wird der Name der Filiale aus der Datenbank abgerufen, und „nextstep“
wird auf dept gesetzt. Wenn die Nummer ungültig ist, wird „nextstep“ auf error gesetzt.
step "storenum"
ask(store)
with ODBCRead
.Reset()
.DataSource=local.DataSource
.TableName="Filialen"
.LogonName=local.LogonName
.LogonPassword=local.LogonPassword
.DataColumns="StoreName"
.WhereClause="StoreNumber=" + store.AsString()
.Go()
if (.GetNextRow())
then
storename = .GetString("StoreName")
nextstep "dept"
else
nextstep "error"
endif
.Finished()
endwith
4 Dieser Schritt wird ausgeführt, wenn die angegebene Filialnummer ungültig ist. Es wird eine
Fehlermeldung angezeigt, und der Benutzer wird zur erneuten Eingabe aufgefordert. Der
Benutzer bestätigt die Meldung, woraufhin „nextstep“ auf storenum gesetzt wird, d. h. die
erste Frage wird erneut gestellt.
step "error"
ask(errmsg)
nextstep "storenum"
5 Dieser Schritt wird ausgeführt, wenn eine gültige Filialnummer eingegeben wurde. Der
Aufforderungstext wird hier festgelegt, so daß er den Namen der ausgewählten Filiale
enthalten kann. Die gültigen Abteilungen für diese Filiale werden daraufhin aus der
Datenbank abgerufen.
step "dept"
dept.SetPromptText("Wählen Sie die Abteilung in " + storename)
with ODBCRead
.Reset()
.DataSource=local.DataSource
.TableName="Abteilungen"
.LogonName=local.LogonName
.LogonPassword=local.LogonPassword
.DataColumns="Abteilung"
.WhereClause="StoreNumber=" + store.AsString()
.Go()
Document Distributor-Skripts
20
6 Jede Abteilung wird der Auswahlliste als Option hinzugefügt.
repeat until (.GetNextRow() == FALSE)
item = .GetString("Abteilung")
dept.AddPromptOption(item)
endrepeat
.Finished()
endwith
7 Die Frage ist hiermit vollständig erstellt. Der Benutzer kann die Abteilung wählen, die das
gescannte Dokument erhalten soll. Da dies die letzte Frage ist, wird die Direktive „laststep“
verwendet.
ask(dept)
laststep
endprompt
8 Sobald die Fragen gestellt wurden, wird das Dokument gescannt und genauso übermittelt
wie Aufträge ohne Aufforderungen. Die Ausführung des Skripts wird an diesem Punkt
fortgesetzt, wenn der Auftrag neu gestartet wird. Erstellen Sie den vollständigen Pfad
und Dateinamen, unter dem die Datei gespeichert wird. Die Datei wird im Verzeichnis
c:\lexmark in einem Unterverzeichnis, das der Filialnummer entspricht, und einem weiteren
Unterverzeichnis für die Abteilung gespeichert. Der vollständige Name lautet wie folgt:
c:\lexmark\storenum\department name\scan_timestamp.tif.
string filepath = "c:\lexmark\" + store.AsString() + "\" + dept +
"\scan.tif"
9 Die Datei wird mit der Aktion „SaveToFile“ unter dem im vorherigen Schritt angegebenen
Pfad auf der Festplatte gespeichert. Zur Gewährleistung eines eindeutigen Dateinamens
wird „AppendTimestamp“ auf TRUE gesetzt. „CreateDirectory“ wird auf TRUE gesetzt, so
daß nicht vorhandene Verzeichnisse erforderlichenfalls erstellt werden.
with SaveToFile
.input=original.document
.Path=filepath
.AppendTimestamp=TRUE
.CreateDirectory=TRUE
.Go()
endwith
So führen Sie dieses Skript aus:
1 Richten Sie auf dem Server die zu verwendende Datenbank ein. Die Microsoft
Access-Datenbank „stores.mdb“ wird für dieses Beispiel bereitgestellt. Diese Datei befindet
sich in dem mit Workflow Composer installierten Verzeichnis mit Beispielskripts. Konfigurieren
Sie die ODBC-Verbindung. Weitere Informationen hierzu finden Sie in Anhang A.
2 Laden Sie es mit Hilfe des Workflow Composer oder des Server Manager auf den Server.
3 Konfigurieren Sie die ODBC-Verbindungsdaten über die lokalen Einstellungen.
Document Distributor-Skripts
21
4 Zur Verwendung dieses Skripts auf einem MFP muß dieser über einen Sensorbildschirm
verfügen. Wenn dies nicht der Fall ist, wählen Sie Select 'N' Send oder Print 'N' Send. Wenn
ein Sensorbildschirm vorhanden ist, erstellen Sie ein Profil.
5 Die Datenbank enthält drei Filialnummern: 10, 20 und 30. Bei Eingabe einer ungültigen
Nummer wird eine Fehlermeldung angezeigt.
Dieses Skript zeigt die Fähigkeit der Aufforderungen, Daten zum Zeitpunkt der Eingabe durch
den Anwender zu überprüfen und die gegebenen Antworten zur dynamischen Anzeige von
Auswahloptionen zu verwenden. In diesem Beispiel wird die Datei auf der Festplatte gespeichert. Es
könnte jedoch auch zur Erweiterung von Beispiel 2 verwendet werden (Drucken eines Dokuments).
In diesem Fall würde die der gewählten Filiale und Abteilung zugehörige Drucker-IP-Adresse aus
der Datenbank abgerufen und zum Senden des Druckauftrags verwendet werden.
Document Distributor-Skripts
22
3
Document Producer-Skripts
Beispiel 8: Zusammenführen von Daten und Drucken eines Formulars
Übersicht: Zusammenführen von Daten auf einem Formular und Drucken des Formulars.
Details: Ein Unternehmen möchte mit Hilfe des Document Producer den ASCII-Druckdatenstrom
von einem Drucker mit Formularvordrucken an den Document Server umleiten. Dieses Skript wird
verwendet, um die eingehenden Daten mit einem über den Forms Composer erstellten FormSet
zusammenzuführen und auf leerem Papier auszudrucken.
Skript:
1 Erstellen Sie aus den eingehenden Daten („original.dataset“) mit der Aktion „MergeForm“
die PDF-Datei des ausgefüllten Formulars.
with MergeForm
.input=original.dataset
.Go()
endwith
2 Die Druckoptionen, wie z. B. Duplexdruck, Papiereinzug und Papierformat, werden mit der
Erstellung des FormSets konfiguriert und über die Eigenschaft „printoptions“ übermittelt.
Papierausgabeoptionen wie Heften oder Lochen können im FormSet nicht definiert werden.
Wenn Sie zusätzliche Einstellungen hinzufügen oder die FormSet-Einstellungen
überschreiben möchten, erstellen Sie ein „printoptions“-Objekt, und geben Sie die
gewünschten Einstellungen an. In diesem Fall wird die Option Lochen aktiviert.
printoptions po = MergeForm.printoptions
po.SetJobOption(LDD_PRINTOPTION_HOLEPUNCH, LDD_HOLEPUNCH_ON)
3 Drucken Sie das PDF-Formular mit Hilfe der Aktion „PrintForm“. Die IP-Adresse und der Typ
des Druckers werden über die lokalen Einstellungen konfiguriert. Wenn der verwendete
Drucker über eine ImageQuick-Option verfügt, wird das PDF-Formular direkt an den Drucker
gesendet. Anderenfalls wird das PDF-Formular in PostScript konvertiert und dann an den
Drucker gesendet. Im Feld PrinterType muß die lokale Variable (PrinterType) als
Aufzählungsvariable eingerichtet sein. Weitere Informationen finden Sie in der Hilfe zu den
lokalen Einstellungen in der Workflow Composer-Anwendung.
Document Producer-Skripts
23
with PrintForm
.input=MergeForm.output
.IPAddress=local.PrinterAddress
.PrinterType=local.PrinterType
.PrintOptions=po
.WaitForCompletion=FALSE
.Go()
endwith
So führen Sie dieses Skript aus:
1 Laden Sie es mit Hilfe des Workflow Composer oder des Server Manager auf den Server.
2 Konfigurieren Sie die Druckerdaten über die lokalen Einstellungen.
3 Laden Sie das im Forms Composer enthaltene Beispiel „debit memo“. Erstellen Sie eine
Named Pipe mit dem Namen „test“. Weitere Informationen hierzu finden Sie in Anhang B.
4 Öffnen Sie auf dem Computer, der als Document Server fungiert, ein Befehlszeilenfenster.
Emulieren Sie unter Verwendung der im Forms Composer enthaltenen Beispieldatei einen
Druckdatenstrom, indem Sie folgendes eingeben:
copy /b debittext.txt \\.\pipe\test
Die Option /b führt eine binäre Kopie aus. Die Datei „debittext.txt“ enthält eine
Beispiel-Datendatei, die so formatiert ist, als würde sie an einen Drucker gesendet werden.
Mit \\.\pipe\test wird die Datei in die in Anhang B erstellte Named Pipe kopiert. Wenn Sie die
Aktion auf einem anderen Computer als dem Document Server ausführen, ersetzen Sie den
Punkt („.“) durch die IP-Adresse des Computers, der als Server fungiert.
Hinweis: Informationen zur Konfiguration von Windows-Druckerwarteschlangen finden
Sie in der Online-Hilfe des Forms Composer und des Server Manager.
Document Producer-Skripts
24
Beispiel 9: Zusammenführen von Daten und Faxen eines Formulars
Übersicht: Zusammenführen von Daten auf einem Formular und Faxen des Formulars.
Details: Ein Unternehmen möchte mit Hilfe des Document Producer den ASCII-Druckdatenstrom
von einem Drucker mit Formularvordrucken an den Document Server umleiten. Dieses Skript wird
zum Zusammenführen der eingehenden Daten mit einem über den Forms Composer erstellten
FormSet verwendet und faxt das daraus entstehende Dokument.
Skript:
1 Erstellen Sie aus den eingehenden Daten („original.dataset“) mit der Aktion „MergeForm“
die PDF-Datei des ausgefüllten Formulars.
with MergeForm
.input=original.dataset
.Go()
endwith
2 Die Ausgabe der Aktion „MergeForm“ ist eine PDF-Datei. Diese muß in ein TIFF-Bild
umgewandelt werden, so daß sie in PostScript konvertiert werden kann.
with ConvertImageFormat
.input=MergeForm.output
.Format=LDD_IMGFORMAT_TIFG4
.ColorDepth=LDD_IMGDEPTH_BW
.AllPages=TRUE
.Go()
endwith
3 Konvertieren Sie das TIFF-Bild in Postscript, so daß es gefaxt werden kann.
with ConvertToDocument
.input=ConvertImageFormat.output
.Format=LDD_DOCFORMAT_PS
.AllPages=TRUE
.PaperSize=LDD_PAPERSIZE_LETTER
.Orientation=LDD_ORIENTATION_AUTO
.Go()
endwith
4 Ermitteln Sie aus dem eingegangenen Dataset die Faxnummer. Alle Werte jeder beliebigen
Variablen in einem FormSet können abgerufen und in einem Skript verwendet werden.
string faxnumber = original.dataset.GetDataItem("FAXNUMMER")
5 Senden Sie das Fax mit Hilfe der Aktion „FaxByPrinter“. Das Fax wird über einen MFP mit
Faxfunktion gesendet. Die IP-Adresse des MFP wird über eine lokale Einstellung konfiguriert.
with FaxByPrinter
.input=ConvertToDocument.output
.IPAddress=local.IpAddress
.StationID="ID des Faxgeräts"
.FaxNumber=faxnumber
.WaitForCompletion=FALSE
Document Producer-Skripts
25
.RedialMinutes=5
.RedialTimes=3
.Go()
endwith
So führen Sie dieses Skript aus:
1 Laden Sie es mit Hilfe des Workflow Composer oder des Server Manager auf den Server.
2 Konfigurieren Sie die Druckerdaten über die lokalen Einstellungen.
3 Laden Sie das im Forms Composer enthaltene Beispiel „fax cover“. Erstellen Sie eine Named
Pipe mit dem Namen „test“. Weitere Informationen hierzu finden Sie in Anhang B.
4 Öffnen Sie auf dem Computer, der als Document Server fungiert, ein Befehlszeilenfenster.
Emulieren Sie unter Verwendung der im Forms Composer enthaltenen Beispieldatei einen
Druckdatenstrom, indem Sie folgendes eingeben:
copy /b faxcover.txt \\.\pipe\test
Die Option /b führt eine binäre Kopie aus. Die Datei „faxcover.txt“ enthält eine
Beispiel-Datendatei, die so formatiert ist, als würde sie an einen Drucker gesendet werden.
Mit \\.\pipe\test wird die Datei in die in Anhang B erstellte Named Pipe kopiert. Wenn Sie die
Aktion auf einem anderen Computer als dem Document Server ausführen, ersetzen Sie den
Punkt („.“) durch die IP-Adresse des Computers, der als Server fungiert.
Hinweis: Das Skript ruft nur die Faxnummer ab. Es ist jedoch auch möglich,
E-Mail-Adressen, Kundennummern und jede andere beliebige Variable in
einem FormSet zu übermitteln. Diese Werte können dann im Skript verwendet
werden. In diesem Fall führt das Skript einen Faxvorgang mit einem MFP aus.
Sie können das Skript jedoch auch so schreiben, daß der Faxvorgang über
einen Faxserver ausgeführt wird, der SMTP unterstützt. Außerdem kann das
Formular gespeichert und zu einem späteren Zeitpunkt durch andere vom
Server unterstützte Aktionen verwendet werden.
Document Producer-Skripts
26
4
Document Portal-Skripts
Beispiel 10: Drucken eines leeren Formulars
Übersicht: Drucken eines leeren Formulars
Details: Dies ist ein einfaches Skript, das vom Document Portal verwendet wird, um mit einem
PostScript-Drucker leere Formulare zu drucken.
Skript:
1 Erstellen Sie ein Dataset, das an die Aktion „MergeForm“ übermittelt wird. Dieses DataSet
enthält nur den Namen des zu verwendenden FormSets. Es werden keine Daten übermittelt,
da ein leeres Formular gedruckt werden soll. Das zu verwendende FormSet wird über die
Eigenschaft „formsetname“ des ursprünglichen Objekts übermittelt.
dataset merge_input
merge_input.SetFormset(original.formsetname)
2 Erstellen Sie mit Hilfe der Aktion „MergeForm“ das leere PDF-Formular.
with MergeForm
.input=merge_input
.Go()
endwith
3 Drucken Sie das mit Hilfe der Aktion „MergeForm“ erstellte PDF-Dokument unter
Verwendung der Aktion „PrintForm“. Die IP-Adresse des Druckers und die zu verwendenden
Druckoptionen werden über die Eigenschaften „printerip“ und „printoptions“ des
ursprünglichen Objekts übermittelt. Diese Einstellungen werden im Document
Portal-Administrator konfiguriert. In diesem Fall wird der Druckertyp auf „PostScript“ gesetzt.
Wenn der verwendete Drucker über die ImageQuick-Option verfügt, ändern Sie den
Druckertyp in LDD_PRINTERTYPE_LEXIQ.
with PrintForm
.input=MergeForm.output
.IPAddress=original.printerip
.PrinterType=LDD_PRINTERTYPE_LEXPS
.PrintOptions=original.printoptions
.WaitForCompletion=FALSE
.Go()
endwith
Document Portal-Skripts
27
So führen Sie dieses Skript aus:
1 Laden Sie das Skript mit Hilfe des Document Portal-Adminstrators auf den Server.
Verwenden Sie nicht Workflow Composer bzw. Server Manager zum Hochladen des Skripts.
2 Wenn sich keine PDFs bzw. FormSets auf dem Server befinden, laden Sie eines. Weisen
Sie dem Skript ein geladenes FormSet zu.
3 Verwenden Sie einen MFP mit Sensorbildschirm. Wählen Sie das Formularsymbol und
anschließend das diesem Skript zugewiesene Formular.
Document Portal-Skripts
28
Beispiel 11: Auffordern des Benutzers und Drucken eines leeren Formulars
Übersicht: Auffordern des Benutzers und Drucken des leeren Formulars.
Details: Dieses Skript ist für Farbdrucker geeignet. Der Benutzer wird gefragt, ob das Formular in
Farbe oder Schwarzweiß gedruckt werden soll. Somit können beide Ausgabetypen in einem Skript
enthalten sein.
Skript:
1 Dieses Skript enthält eine Frage an den Endbenutzer, die Sie hier erstellen müssen. Die
Frage besteht aus einer Auswahlliste, bei der der Benutzer entweder die Option für die
Schwarzweißausgabe oder für die Farbausgabe wählen kann. Wie bei allen Skripts mit
Aufforderungen müssen alle Aufforderungen sowie alle im „prompt“-Block verwendeten
Variablen angegeben werden, bevor der „prompt“-Block eingegeben wird.
stringprompt color
with color
.SetPromptText("Wählen Sie den gewünschten Ausgabetyp:")
.AddPromptOption("Schwarzweiß")
.AddPromptOption("Farbe")
endwith
2 Damit ist die Vorbereitung der Frage abgeschlossen. Der „prompt“-Block wird jetzt
verwendet, um die Frage zu stellen. Wenn der Benutzer dieses Skript wählt, wird dieser
Teil des Skripts ausgeführt, bevor der Auftrag an den Server gesendet wird. Da es sich um
nur eine Frage handelt, ist nur ein Schritt erforderlich.
prompt
step "prompts"
ask(color)
laststep
endprompt
3 Sobald die Frage gestellt wurde, wird der Auftrag genauso übermittelt wie Aufträge ohne
Aufforderungen. Die Ausführung des Skripts wird an diesem Punkt fortgesetzt, wenn der
Auftrag neu gestartet wird.
4 Erstellen Sie ein Dataset, das an die Aktion „MergeForm“ übermittelt wird. Dieses DataSet
enthält nur den Namen des zu verwendenden FormSets. Es werden keine Daten übermittelt,
da ein leeres Formular gedruckt werden soll. Das zu verwendende FormSet wird über die
Eigenschaft „formsetname“ des ursprünglichen Objekts übermittelt.
dataset merge_input
merge_input.SetFormset(original.formsetname)
5 Erstellen Sie mit Hilfe der Aktion „MergeForm“ das leere PDF-Formular.
with MergeForm
.input=merge_input
.Go()
endwith
Document Portal-Skripts
29
6 Das Skript ändert die mit dem Auftrag gesendeten Druckoptionen. Basierend auf der
Auswahl des Benutzers wird der Drucker auf die Verwendung der Farbdruckkassetten oder
nur der schwarzen Druckkassette eingestellt.
printoptions opts = original.printoptions
if (color == "Farbe")
opts.SetJobOption(LDD_PRINTOPTION_COLORMODEL, LDD_COLORMODEL_CMYK)
else
opts.SetJobOption(LDD_PRINTOPTION_COLORMODEL, LDD_COLORMODEL_BLACK)
endif
7 Drucken Sie das mit Hilfe der Aktion „MergeForm“ erstellte PDF-Dokument unter
Verwendung der Aktion „PrintForm“. Die IP-Adresse des Druckers wird über die Eigenschaft
„printerip“ des ursprünglichen Objekts übermittelt. Die Druckoptionen entsprechen der im
vorherigen Schritt erstellten, geänderten Version. Die ursprünglichen Druckeinstellungen
werden im Document Portal-Administrator konfiguriert. In diesem Fall wird der Druckertyp
auf „PostScript“ gesetzt. Wenn der verwendete Drucker über die ImageQuick-Option verfügt,
ändern Sie den Druckertyp in LDD_PRINTERTYPE_LEXIQ.
with PrintForm
.input=MergeForm.output
.IPAddress=original.printerip
.PrinterType=LDD_PRINTERTYPE_LEXPS
.PrintOptions=opts
.WaitForCompletion=FALSE
.Go()
endwith
So führen Sie dieses Skript aus:
1 Laden Sie das Skript mit Hilfe des Document Portal-Administrators auf den Server.
Verwenden Sie nicht Workflow Composer bzw. Server Manager zum Hochladen des Skripts.
2 Wenn sich keine PDFs bzw. FormSets auf dem Server befinden, laden Sie eines. Weisen Sie
dem Skript ein geladenes FormSet zu.
3 Verwenden Sie einen mit einem Farbdrucker verbundenen MFP mit Sensorbildschirm. Wählen
Sie das Formularsymbol und anschließend das diesem Skript zugewiesene Formular.
Document Portal-Skripts
30
Anhang A: ODBC-Einrichtung
Führen Sie die folgenden Schritte aus, um die für die Beispiele 4 und 7 verwendeten ODBC-DSNVerbindungen einzurichten. Die DSNs werden auf dem Computer erstellt, auf dem der Document
Server installiert ist.
1 Windows NT: Gehen Sie zu Einstellungen
Systemsteuerung.
Windows 2000/XP: Gehen Sie zu Einstellungen Systemsteuerung
Verwaltung.
2 Wählen Sie Datenquellen (ODBC).
3 Wählen Sie die Registerkarte System-DSN. Klicken Sie auf Hinzufügen. Hierauf wird
eine Liste der auf diesem Computer installierten ODBC-Treiber angezeigt. Wählen Sie
Microsoft Access-Treiber (*.mdb) aus der Liste, und klicken Sie auf Fertigstellen.
4 Das Dialogfeld für die Microsoft Access-ODBC-Einrichtung wird angezeigt. Geben Sie für
Beispiel 4 den Datenquellennamen „LDD1“ und für Beispiel 7 „LDD2“ ein. Klicken Sie auf
die Schaltfläche Auswählen, um die für diese Verbindung zu verwendende Datenbank zu
suchen. Wählen Sie für Beispiel 4 die Datenbank „resumes.mdb“. Wählen Sie für Beispiel 7
„stores.mdb“. Klicken Sie auf OK.
5 Nachdem beide Datenbanken hinzugefügt wurden, werden sie in der Liste System-DSN
angezeigt.
6 Klicken Sie auf OK, um das Dialogfeld zu schließen. Die Verbindungen sind nun konfiguriert
und können von einem Skript aus verwendet werden.
Beim Laden von Skripts sind für die Beispiele 4 und 7 lokale Einstellungen verfügbar, über
die die ODBC-Einstellungen konfiguriert werden können. In der Regel sind zwei Angaben
für alle ODBC-Verbindungen erforderlich und zwei optional.
–
–
–
–
Die DSN muß angegeben werden. Der Datenquellenname ist der in Schritt 4 oben
angegebene.
Der Tabellenname muß angegeben werden. Dies ist der Name der Tabelle, die die
im Skript verwendeten Daten enthält. Wenn Sie die Datenbanken aus den Beispielen
verwenden, können Sie die mit den lokalen Einstellungen bereitgestellten
Standardtabellennamen verwenden.
Die Angabe des Benutzernamens ist optional. Wenn keine Anmeldung erforderlich ist, kann
dieses Feld leer bleiben. (Für Access ist standardmäßig keine Anmeldung erforderlich.)
Die Angabe des Paßwortes ist optional. Wenn keine Anmeldung erforderlich ist, kann
dieses Feld leer bleiben.
31
Anhang B: FormSet-Einrichtung
In diesem Anhang wird erläutert, wie Sie ein FormSet laden, und es wird außerdem erklärt, wie die
Named Pipe so konfiguriert wird, daß Sie mit ihr arbeiten können. Diese Erläuterungen dienen zur
Ausführung der Beispiele 8 und 9.
Auf dem Server Manager:
1 Laden Sie erforderlichenfalls das für dieses FormSet erforderliche Skript. Laden Sie für diese
Beispiele die Skripts „example08.xdd“ bzw. „example09.xdd“.
2 Klicken Sie auf der Startseite auf FormSet hinzufügen. Dadurch wird der Assistent zum
Hinzufügen von FormSets gestartet. Der erste Schritt des Assistenten besteht in der Auswahl
des zu ladenden FormSets. Wählen Sie für Beispiel 8 „debitmemo.fdd“ und für Beispiel 9
„faxcover.fdd“. Beide Objekte sind in dem mit Forms Composer installierten
Beispielverzeichnis enthalten. Klicken Sie auf Weiter. Auf der folgenden Seite des
Assistenten können Sie die Aktion festlegen, die beim Empfang von Daten für dieses
FormSet ausgeführt wird. Es stehen drei Optionen zur Verfügung:
–
–
–
Die Aktion wird von der Pipe oder im Datenstrom angegeben,
eine der vordefinierten Aktionen wird verwendet, oder
ein benutzerdefiniertes Skript wird verwendet.
Für die hier behandelten Beispiele wird ein benutzerdefiniertes Skript verwendet. Wählen
Sie das entsprechende Skript aus der Liste („example08“ bzw. „example09“).
3 Klicken Sie auf Weiter. Auf der letzten Seite des Assistenten finden Sie eine
Zusammenfassung. Wenn Sie die für die Beispiele zu verwendende Named Pipe nicht
bereits erstellt haben, aktivieren Sie das Kontrollkästchen zum Starten des Assistenten zum
Erstellen von Named Pipes.
4 Klicken Sie auf Fertigstellen. Wenn die Erstellung der Named Pipe erforderlich ist, wird der
Assistent zum Erstellen von Named Pipes gestartet, anderenfalls ist der Vorgang
abgeschlossen, und Sie können mit der Ausführung des Skripts fortfahren.
5 Der erste Schritt des Assistenten zum Erstellen von Named Pipes ist die Benennung der
Pipe. In diesem Fall wird nur eine Pipe erstellt. Sie kann sowohl für Beispiel 8 als auch für
Beispiel 9 verwendet werden. Nennen Sie die Pipe „test“, und geben Sie eine Beschreibung
ein, falls gewünscht. Klicken Sie auf Weiter.
32
6 Auf der nächsten Seite des Assistenten wird die Pipe so konfiguriert, daß sie Daten für ein
bestimmtes FormSet bzw. mehrere FormSets akzeptiert. Da die Pipe für die Beispiele 8 und
9 erstellt wird, wählen Sie Diese Pipe wird von mehreren FormSets verwendet. Klicken
Sie auf Weiter.
7 Auf der folgenden Seite des Assistenten wird die Aktion konfiguriert, die beim Empfang
von Daten in der Pipe ausgeführt wird. Diese Seite ähnelt der Seite des Assistenten zum
Hinzufügen von FormSets, auf der Sie die Aktion konfigurieren, die beim Empfang von Daten
für das FormSet ausgeführt wird. Da Sie die Aktion für das FormSet bereits konfiguriert
haben (das Ausführen eines benutzerdefinierten Skripts), wählen Sie Aktion wird im
Druckdatenstrom angegeben. Klicken Sie auf Weiter.
8 Auf der nächsten Seite des Assistenten können Sie den von der Pipe empfangenen Datentyp
festlegen. In diesem Fall werden Textdateien gesendet, so daß der Datentyp nicht variiert.
Wählen Sie Die Daten weisen immer diesen Typ auf und anschließend Ein Datenstrom
aus unformatiertem Text aus der Liste. Klicken Sie auf Weiter.
9 Auf der letzten Seite des Assistenten finden Sie eine Zusammenfassung der gewählten
Optionen. Klicken Sie auf Fertigstellen. Nun können Sie das Skript ausführen.
Weitere Informationen zu den verschiedenen Optionen beim Laden von FormSets und Erstellen von
Named Pipes finden Sie in der in Server Manager enthaltenen Online-Hilfe.
33
Lexmark und Lexmark mit der roten Raute sind in den USA und/oder anderen Ländern
eingetragene Marken von Lexmark International, Inc.
© 2004 Lexmark International, Inc.
740 West New Circle Road
Lexington, Kentucky 40550, USA
www.lexmark.com
Herunterladen