Kontakt Download Shop Schrift Drucken
Kontakt Download Shop Schrift Drucken

Rul-Skript

Skriptsprache für Textbearbeitung

Die Rul-Skriptsprache ist das eigentliche Arbeitswerkzeug von directEXTRACT. In dieser Skriptsprache wird genau definiert, welche Dokumententypen es gibt und welche Daten aus den Dokumenten extrahiert werden sollen.

Im Folgenden werden die technischen Grundlagen der Rul-Skriptsprache erläutert.

Fuzzy - Technologie für Textverarbeitung

Nun sind Dokumenten - Layouts in der Praxis oft Wandlungen unterzogen. Wir haben herausgefunden, dass die Fuzzy-Technologie weitaus besser als die bekannte (binäre) Arithmetik geeignet ist, um die hier auftretenden Probleme der Textverarbeitung zu lösen. Denn letztendlich geht es darum, auch bei leicht geändertem Layout einer Seite trotzdem immer die gleichen Textstellen zu finden.

Deshalb wollen wir Ihnen nun unseren Ansatz der Fuzzy - Mathematik etwas näher bringen.

Die Fuzzy - Technologie beruht darauf, dass Bedingungen und Entscheidungen nicht aus Ja und Nein bestehen, sondern aus einer Wahrscheinlichkeit oder besser einer Bewertungszahl im Intervall p=[0..1].

Die Bedingung "Ist diese Text rot?" wird nicht mit einem klaren Ja/Nein beantwortet, sondern mit einer Bewertungszahl, die in diesem Fall die Ähnlichkeit der Textfarbe mit der Farbe Rot angibt. Blau ist dabei weniger ähnlich zu Rot als Orange.

Nach einem ähnlichen Prinzip wird bei Positionen verfahren. Die Bedingung "Ist der Text im Bereich [0,0,100,100]" führt mit Fuzzy - Methodik dazu, dass jeder Text auf der Seite eine Bewertungszahl zugewiesen bekommt, wie gut der Text in dem gesuchten Bereich positioniert ist. Mit anderen Worten, wie Nahe der Text dem gesuchten Bereich ist.

Es gibt viele verschiedene solcher Bewertungen: Textfarbe, Position, Schriftart, Schriftgröße und Textinhalt. Selbst Relationen von Nachbarelementen wie der Abstand voneinander können auf diese Weise bewertet werden.

Mehrere solcher Bewertungen können dann mit Bedingungen wie AND und OR zusammengefasst werden. Aber auch hier darf man das bekannte AND und OR nicht logisch betrachten. Es wird tatsächlich auch hier eine weiche Fuzzy - Mathematik ausgeführt. Hatte ein Textelement vorher viele Maßzahlen (zu jeder Bedingung wie Farbe und Position jeweils eine), so werden diese nun zu einer Bewertungszahl pro Textelement zusammengefasst.

Auf diese Weise kann man nun mehrere Bewertungszahlen als auch Bedingungen wie AND und OR miteinander verschachteln und beliebig komplexe Ausdrücke bilden.

Erst ganz zum Schluss werden die Bewertungszahlen ausgewertet und das am höchsten bewerteten Element verwendet. Es werden sozusagen ein oder mehrere Textelemente selektiert. Der entsprechende Rul - Befehl heißt dann auch SELECT.

Warum denn eine eigene Programmiersprache ?

Wenn man sich vor Augen hält, dass jeder der hier genannten Ausdrücke gleich einen ganzen Satz von nicht-lineare Gleichungen auf wirklich jedes einzelne Textelement anwendet,

Eine typische Aufgabe eines Rul-Skriptes ist es, Textstellen aufzufinden. Dies führt recht schnell zu komplexen Regeln, die im einfachsten Fall etwa in dem folgenden Muster aufgebaut sind:

"Suche mir den nächsten roten zusammenhängenden Text rechts neben dem Text KUNDENNUMMER der mit einer Ziffer beginnt und der sich ungefähr im Seitenbereiche [0,0,100,100] befindet."

So einen Ausdruck mit den bekannten funktionalen Programmiersprachen wie C, Basic oder Pascal abzubilden führt zu keinem praxisnahen Ansatz.

In der Rul-Skriptsprache wird daraus:

SELECT( BEST, 
             AND ( NEAR( RIGHT, 
                         SELECT( BEST,
                                 AND( BOX( 0,0,100,100),
                                      TEXT( "KUNDENNUMMER")
                       )       ),
                   COLOR( RED)
           )     )

Zugegeben, wenn man sich nie mit diesem Typ von Programmiersprachen beschäftigt hat, sieht das erstmal ungewöhnlich aus. Vielleicht kennen Sie noch die "polnisch-umgekehrte Notation" von älteren Taschenrechnern oder manchen Programmiersprachen. Versuchen Sie einfach den Ausdruck von innen nach außen zu lesen.

Der innere Ausdruck Select sucht den Text "Kundennummer" in dem durch den Ausdruck Box bestimmten Bereich. Der umklammernde Ausdruck Near sucht dann den nächsten Text rechts daneben. Zusätzlich werden durch den Ausdruck Color nur rote Texte zugelassen. Der äußere Select Ausdruck sucht dann das am besten passende Element heraus.

Für diese Art Aufgaben ist dieser Notation ideal, denn in einer "normalen" Programmiersprache würden Sie für diese Aufgaben viele hundert Zeilen Code benötigen.

Tatsächlich muss man Rul-Skript ja auch nicht in allen Einzelheiten verstehen, denn der RulEditor erstellt diese Skripte automatisch.

Die Elementliste und ein paar kleine Tricks

Genau genommen arbeitet das Rul-Skript immer mit einer Liste von Textelementen, der Arbeitsliste. Am Anfang sind immer alle Text-Elemente darin enthalten. Ein Fuzzy - Befehle behandelt immer alle Elemente die in der aktuellen Liste von Textelementen enthalten sind.

Mit Hilfe des Befehls SELECT können nun solange Textelemente aus der Arbeitsliste entfernt werden, bis nur noch das gesuchte Textelement übrig bleibt.

Auf diese Weise kann man jederzeit das Beste aus beiden Welten verwenden. Zum Beispiel ist es in den meisten Fällen unsinnig, dass alle Textelemente von allen Seiten ausgewertet werden. In der Regel sucht man nach einem Text auf der ersten, zweiten oder der letzten Seite. Mit dem einfachen Befehl:

SELECT( ALL, PAGE( 0))

werden ganz einfach alle Elemente aus der Arbeitsliste entfernt, die sich nicht auf der ersten Seite befinden (die Bedingung PAGE fängt bei 0 an zu zählen). Nur Elemente die sich auf der ersten Seite befinden, verbleiben in der Arbeitsliste.

Danach kann man das gesuchte Element dann einfach mit einem zweiten SELECT Befehl einkreisen. Wenn man z.B. den gesamten Text in einem bestimmten Bereich sucht:

SELECT( BEST, BOX(10,10,100,100))

Daneben ist der UNSELECT Befehl das genaue Gegenteil von SELECT. Er entfernt die Textelemente aus der Arbeitsliste, die der Fuzzy - Bedingung am besten entsprechen. Dieser Befehl eignet sich besonders um störende Texte vor der eigentlichen Auswertung zu entfernen.

Natürlich lässt sich die Arbeitsliste in beliebigen Variablen speichern und auch wieder laden, dies geht mit den Befehlen SET und GET.

Modifikatoren

Übliche Office - Programme wie Microsoft Word oder OpenOffice Writer können Texte auf sehr unterschiedliche Weise drucken. An einem normalen Drucker mögen diese Unterschiede nicht auffallen, für eine Textverarbeitung macht es aber schon Unterschiede ob der Text in der Form "123456" oder "1", "2", "3", "4", "5" ausgegeben wurde. Auch können manchmal Zeichen enthalten sein, die ganz einfach unerwünscht sind. Es gibt auch Programme, die Drucken den Text "Kundennumer: 12345" in der Form "Kundennumm" "er: 123" "45".

Der Modifikator CONCAT kann nahe beieinander stehende Textelemente wie "1", "2", "3", "4", "5" zu einem Textelement der Form "12345" zusammenfassen. Durch die MODIFY Anweisung lassen sich alle Textelemente der Liste auf einmal modifizieren. So können bestimmte unerwünschte Zeichen oder Phrasen ganz leicht ignoriert werden.

Bedingungen

Tatsächlich enthält Rul-Skript auch eine ganz normale Programmiersprache mit IF-THEN-ELSE, WHILE-Schleifen, Booleschen Bedingungen und algebraischen Ausdrücken. Dies kann dafür verwendet werden um zwischen den verschiedenen Dokumenttypen zu unterscheiden und um die Ausgabe zu formatieren.

Wenn Sie sich jetzt immer noch nicht klüger fühlen...

... macht das überhaupt nichts. Sie haben sicher verstanden wie mächtig Rul-Skript in Bezug auf Textverarbeitung ist. Der Rul-Editor nimmt Ihnen jegliche Programmierarbeit vollkommen ab. Sie können sich mit dem RulEditor ganz darauf konzentrieren, welche Dokumente Sie haben und welche Informationen Sie daraus gewinnen wollen. Sie arbeiten einfach mit der Maus wie in einer Textverarbeitung und ohne eine einzige Zeile Rul programmiert zu haben.

Erst wenn Sie wirklich das letzte bisschen aus directEXTRACT herausholen möchten brauchen Sie sich mit Rul zu beschäftigen. Und selbst in komplexen Fällen reicht es, die Codevorlage des RulEditor einfach zu modifizieren anstatt den gesamten Code neu zu schreiben.

Wenn Sie wünschen, zeigt der RulEditor ihnen das automatisch erstellte Skript auch an, siehe Bild 1. Oben im Bild sehen Sie das erstellte Skript und unten die durch das Skript erstellte Ausgabe. In diesem Skript werden Daten wie Anschrift, Rechnungsnummer, Kundennummer und Beträge aus einer Rechnung exportiert.


Bild 1: Das automatisch erstellte Rul-Skript im RulEditor.

Sollten Sie eines Tages Rul-Skripte wirklich modifizieren müssen, denken Sie einfach daran, dass Sie in Rul nur ein Wort ändern anstatt hunderte von Programmierzeilen wie in einem normalen Programm.

Mit DOS Programmen drucken?
Ältere MS-DOS Programme sind an vielen Stellen immer noch nicht wegzudenken. Allerdings sind kaum noch Drucker erhältlich, die die älteren Druckformate richtig unterstützen. Mit directESC können Sie die Druckdaten von Programmen die z.B. Epson ESC/P und IBM ProPrinter unterstützen auf modernen USB-Druckern ausgeben. Mehr...
Neu: directCONVERT 4.0
Mit directCONVERT 4 setzen wir neue Maßstäbe. Das Konvertieren beliebiger Dokumente nach TIFF, PCX, BMP, JPEG und GIF ist mit dem integrierten Ausgangskorb noch einfacher geworden. Unterstützt werden Microsoft Windows 2000, Windows XP, Windows Vista und Windows 7. Mehr...
Barcodes im Griff
Mit directBAR haben Sie alle Standard Barcodes fest im Griff. Mit nur wenigen Klicks haben Sie Ihren Barcode erstellt und können ihn z.B. sofort über die Zwischenablage in Ihr Word-Dokument importiert. Mehr...
Bilder per Mail senden?
Mit directVIEW können Sie nun ganz leicht Bilder per E-Mail versenden. Dabei achtet directVIEW immer auf das richtige Bildformat und wählt für Sie die optimale Komprimierung aus. Richtig praktisch sind die druckbaren HTML E-Mails. Dabei sieht der Empfänger das Bild sofort in seinem E-Mail Programm, ohne dass er die Datei öffnen muss. Mehr...
powered by m-sys.de
Keywords: TIFF, Windows, Grafiken, Druckertreiber, directCONVERT, directVIEW, directCAPTURE, directPRINT, Microsoft, Printer, BMP, directMON, Document, Drucker, GIF, Image, JPEG, directJOB, Driver tiff windows