Umgebungen für binäre Dokumente einrichten

Dieses Dokument beschreibt verschiedene Möglichkeiten, Entire Output Management für die Verarbeitung von binären Dokumenten einzurichten - mit und ohne die Open Print Option (OPO).

Folgende Themen werden behandelt:


Allgemeine Informationen zu binären Dokumenten

Allgemeine Informationen zur Verarbeitung von binären Dokumenten können Sie dem Abschnitt Verarbeitung binärer Daten im Dokument Konzept und Leistungsumfang entnehmen.

Umgebungen für die Verarbeitung von Binärdaten

Es gibt drei Möglichkeiten, eine Umgebung einzurichten, in der Binärdaten von UNIX- und Windows-Computern mit Entire Output Management integriert werden:

1 - Benutzung von OPO mit einem Windows-Druckertreiber

OPO mit Windows-Druckertreiber

Das obige Diagramm zeigt, dass jede beliebige Windows-Anwendung beliebige Ausgaben erzeugen kann, die unter Verwendung eines Windows-Druckertreibers mit einem Drucker-Bestimmungsort (Destination) verbunden werden können. OPO kann "hinter" diesen Druckertreiber geschaltet werden und als Windows-Druckerportmonitor fungieren, um diese Ausgaben an Entire Output Management umzuleiten. Es ist kein Benutzer-Skript nötig. Der Entire Output Management-Monitor braucht dazu nicht einmal die Maschine zu kennen. Auf dem Windows-Computer ist keine weitere Software AG-Laufzeitumgebung nötig (außer der EntireX Mini-Runtime).

2 - Benutzung von OPO ohne Windows-Druckertreiber

Die zweite Art, OPO für die Weiterleitung von Daten an Entire Output Management zu benutzen, besteht darin, Daten aus Dateien direkt an OPO weiterzuleiten, d.h. ohne einen Druckertreiber zu benutzen. In diesem Fall wird - anstelle von auszudruckenden Seiten in der hardware-abhängigen Druckersprache - das Dateiformat selbst nach Entire Output Management übertragen:

OPO ohne Druckertreiber

Bei dieser Umgebungseinrichtung wird eine Datei genommen und an den OPO Client weitergeleitet, der die Daten kodiert und sie dann als Binärdatei des ursprünglichen Typs an Entire Output Management sendet. Dabei wird die Pipe-Funktion von Windows benutzt, um die Daten an den OPO Client nomrpt.exe zu übergeben.

Das Skript kann Teil einer Windows-Benutzeranwendung, eines Microsoft-Word-Makros oder einer einfachen Kommandozeileneingabe sein, zum Beispiel:

type filename.filetype | nomrpt.exe

3 - Benutzung des Dateisystems ohne OPO

Die dritte Umgebungseinrichtung besteht darin, OPO komplett wegzulassen, wenn Binärdateien nach Entire Output Management übertragen werden sollen, die in einem UNIX- oder Windows-Verzeichnis abgelegt sind, dessen Eigentümer Entire Output Management ist:

Dateisystem ohne OPO

Dazu sind ein UNIX-Knoten und vorgefertigte Report-Definitionen in Entire Output Management nötig, die abbilden, welche Verzeichnisse durch den Monitor des betreffenden Quellsystems gesichtet und gehandhabt werden müssen. Die Verzeichnisse werden in jedem Entire Output Management-Monitorzyklus synchron durchsucht.

Die ersten beiden Umgebungseinrichtungen sind asynchron. Selbst wenn der Entire Output Management-Monitor nicht aktiv ist, werden die Daten in eine Entire Output Management-Container-Datei übertragen, aus der der Entire Output Management-Monitor dann die Dokumente erhält. Einzige Voraussetzung ist, dass der Entire Output Management RPC Server aktiv ist. Die erste Umgebungseinrichtung benötigt keine Zwischendateien. Selbst bei der zweiten Umgebungseinrichtung werden die Daten direkt in der Entire Output Management-Container-Datei abgelegt, ohne dass es dazu erforderlich ist, dass die Dateien in Verzeichnissen des Quellsystems verwaltet werden, deren Eigentümer Entire Output Management ist.

Der Hauptunterschied liegt darin, dass die erste Umgebungseinrichtung formatierte Druckseiten mit allen geräteabhängigen Eigenschaften in Entire Output Management speichert, während bei der zweiten und dritten Umgebungseinrichtung die Originaldatei an Entire Output Management weitergeleitet wird, wo diese je nach Bedarf automatisch archiviert und verteilt werden kann. Jedes Dokument kann dann unter Verwendung der entsprechenden Anwendung auf dem Zielsystem (welches faktisch auch das Quellsystem sein kann) wieder ausgedruckt werden.

Bei der ersten Umgebungseinrichtung muss das Layout für die Druckausgabe und die verwendete Hardware definiert werden, bevor das Dokument an Entire Output Management übergeben wird. Dies kann nachträglich nicht mehr geändert werden, weil die Druckdaten alle Formatierungsbefehle des Windows-Druckertreibers enthalten. Bei den anderen beiden Umgebungseinrichtungen besteht die Möglichkeit, Dateien in Entire Output Management zu speichern und, wenn das Dokument aus Entire Output Management heraus gedruckt wird, zu entscheiden, wo es gedruckt und welches Layout benutzt werden soll.

Wenn die zweite oder die dritte Umgebungseinrichtung benutzt wird, ist es nicht möglich, eine Binärdatei direkt auf einem Drucker auszudrucken, weil Entire Output Management das Binärformat der Datei nicht kennt. Die Ausgabekonvertierungsfunktion von Entire Output Management (siehe Beschreibung des Druckertyps DISKUNIX) kann aber die Druckfunktion einer Anwendung auf dem Zielsystem aufrufen, die dann den Job erledigt. Auf diese Weise kann man erreichen, dass die Druckausgabe von Binärdateien durch Entire Output Management gesteuert wird oder dass die Binärdaten für die anschließende Verarbeitung auf dem Zielsystem konvertiert werden.

Beispiele für die Konvertierung eines Binärdokuments

Die weiter unten angegebenen Beispiele basieren auf folgenden Annahmen:

  • Eine Entire Output Management-Installation ist auf einem Großrechner- oder UNIX-System aktiv.

  • Das Quellsystem der Dokumente ist ein Windows-PC mit Namen "win", auf dem ein Entire System Server für UNIX installiert ist und ein Service npr_win aktiv ist.

  • Das Zielsystem für die Ausgabe von Dokumenten ist ein UNIX-Beispielsystem mit Namen "unix", auf dem der Entire System Server UNIX Service npr_unix aktiv ist.

Folgende Fälle werden behandelt:

Beispiel 1 - Beliebige Windows-Druckausgaben nach PDF konvertieren

Aufgabe:

Beliebige Windows-Druckausgaben nach PDF konvertieren und als PDF-Dateien in Entire Output Management speichern.

Mögliche Lösung:

Entire Output Management ist in der Lage, Binärdateien aus UNIX- oder Windows-Verzeichnissen zu lesen. Diese Fähigkeit kann genutzt werden, um alle PDF-Dateien aus einem Verzeichnis zu holen, dessen Eigentümer Entire Output Management ist.

Dazu definieren Sie einen Report folgendermaßen:

          ****             ENTIRE OUTPUT MANAGEMENT ****  
 Benutzer-ID XYZ            - Report Definition >UNIX Identifikation -
 Report
    Name ................... GET-PDF__________________

 Unix Attribute
    NPR Knoten (Name)   npr_win_____ Binaer lesen: B
    Pfad:
    /output/
    und Dateien........ *.pdf____________________________________________
                        __________________________________________________
                        __________________________________________________
                        __________________________________________________

Weitere Informationen zu diesem Bildschirm siehe Abschnitt Report-Identifikation für UNIX- oder Windows-Knoten definieren im Benutzerhandbuch.

Bei dieser Report-Definition sucht der Entire Output Management-Monitor nach PDF-Dateien im Verzeichnis c:\output des angegebenen Windows-PCs, und zwar unabhängig davon ob Entire Output Management in einer Großrechner- oder einer UNIX-Umgebung läuft.

Um die benötigten Druckausgaben nach PDF zu konvertieren, muss ein PDF-Konverter benutzt werden. Richten Sie gemäß Ihrern Anforderungen einen PDF-Konverter ein, der als virtueller Drucker installiert ist und die resultierende PDF-Datei ins Verzeichnis c:\output schreibt.

Sie können jetzt die Druckfunktion einer beliebigen Windows-Anwendung nutzen, indem Sie auf dem so erstellten Drucker drucken. Die Ausgaben werden nach PDF konvertiert, und der Entire Output Management-Monitor lädt die PDF-Dateien zwecks Weiterverarbeitung.

Beispiel 2 - Word-Dokumente nach PDF konvertieren

Aufgabe:

Microsoft Word-Dokumente werden im Verzeichnis c:\output gespeichert. Sie sollen nach PDF konvertiert und dann als PDF-Dateien nach Entire Output Management übertragen werden.

Mögliche Lösung:

Benutzen Sie die Eingabe-Konvertierungsfunktion von Entire Output Management. Unter Annahme, dass das PDF-Konverter-Druckerprofil "NOM-Printing" verfügbar ist und der Entire Output Management-Report GET-PDF (so wie in Beispiel 1 definiert) aktiv ist, weist der folgende Report den Entire Output Management-Monitor an, Word-Dokumente nach PDF zu konvertieren und sie in Entire Output Management zu laden:

          ****             ENTIRE OUTPUT MANAGEMENT ****  
 Benutzer-ID XYZ            - Report Definition >UNIX Identifikation -
 Report
    Name ................... DOC2PDF__________________

 Unix Attribute
    NPR Knoten (Name)   npr_win_____ Binaer lesen: B
    Pfad:
    /output/
    und Dateien........ *.doc____________________________________________
                        __________________________________________________
                        __________________________________________________
                        __________________________________________________

Weitere Informationen zu diesem Bildschirm siehe Abschnitt Report-Identifikation für UNIX- oder Windows-Knoten definieren im Benutzerhandbuch.

Geben Sie bei den Angaben zum Drucken folgende Jobkarten ein:

                        **** ENTIRE OUTPUT MANAGEMENT ****        
  Benutzer-ID XYZ      - Report-Definition >Angaben zum Drucken -               
                                                                                
  Report                                                                        
     Name .............. DOC2PDF__________________                     
                                                                                
  gehalten ............. _                                                      
                                                                                
  Drucker .............. ________ ________ ________ ________ ________           
  Kopien ............... ___      ___      ___      ___      ___                
  Trennblaetter                                                                 
     Start ............. ________                                               
     Ende .............. ________                                               
     Exemplare ......... ___                                                    
     Laenge ............ ___                                                    
  Style.. ______________________________________________________________________
  Jobkarten                                                                    
     input-cmd=""C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE"
     &f /q /n /mNOMPrinting"  

Weitere Informationen zu diesem Bildschirm siehe Abschnitt Angaben zum Drucken definieren im Benutzerhandbuch.

Benutzen Sie den Visual Basic Editor, um das folgende Makro NOM-Printing in Microsoft Word hinzuzufügen:

Sub NOMPrinting()
Dim printerName As String
Dim CurrentDoc  As Word.Document

Set CurrentDoc = ActiveDocument
Set printerName = Trim$(Left$(ActivePrinter, _
		InStr(ActivePrinter, " on ")))
ActivePrinter = "NOMPrinting"
ActiveDocument.PrintOut
ActiveDocument.Close
ActivePrinter = printerName
End Sub

Dies bewirkt Folgendes:

  • Entire Output Management erkennt die ".doc"-Datei im Verzeichnis c:\output.

  • Der Monitor aktiviert den Report DOC2PDF und führt das Eingabekommando in den Jobkartenfeldern aus. Anschließend wird die ".doc"-Datei gelöscht und von Entire Output Management nicht mehr weiter verarbeitet.

  • Das Kommando (ohne die äußeren Anführungszeichen) wird auf dem Windows-Quellsystem "win" (auf dem das Verzeichnis c:\output liegt) ausgeführt.

  • Dort wird Microsoft Word ohne Startup-Logo aufgerufen (/q), es wird kein neues Dokument geöffnet (/n), aber die erkannte ".doc"-Datei wird geöffnet (&f) und das Makro NOM-Printing (/m) wird ausgeführt. Wenn es unter Verwendung eines Batch-Benutzers dieses Windows-Systems aufgerufen wird, bekommt der Benutzer keinen Teil der Ausführung dieser Funktion zu sehen.

  • Das Microsoft Word-Makro setzt den aktuellen Standard-Drucker auf NOM-Printing und druckt das Dokument unter Benutzung des PDF-Konverters. Danach wird wieder auf den vorher eingestellten Standard-Drucker zurückgesetzt.

  • Entire Output Management erhält die erstellte PDF-Datei mit dem Report GET-PDF aus Beispiel 1.

Entire Output Management ersetzt &f durch den aktuellen Dateinamen.

Es sind keinerlei Benutzereingaben nötig, und der Vorgang wird für alle Word-Dokumente durchgeführt, die im Verzeichnis c:\output abgelegt worden sind. Alles wird durch den Entire Output Management-Monitor auf Großrechner oder auf UNIX veranlasst.

Beispiel 3 - PDF-Datei drucken

Aufgabe:

Eine PDF-Datei, die in Entire Output Management gespeichert wurde, auf einem realen Drucker drucken.

Mögliche Lösung, wenn Entire Output Management auf einem UNIX-System läuft:

Vergewissern Sie sich, dass das Produkt Ghostscript installiert ist.

Legen Sie einen logischen Drucker PRTPDF des Typs NATUNIX mit folgenden speziellen Attributen an:

                       **** ENTIRE OUTPUT MANAGEMENT ****       
 User ID XYZ       - Logical Printer >Special Attributes -

 Logical Printer
    Name ............. PRTPDF__
    Description ...... Print a PDF file

 Attributes

   Formfeed ..........
   Linesize ..........
   Max-Pages .........
   Output-Target ..... 1
   Pagesize ..........
   Printer-Name ...... gs -sDEVICE=printserver01:printer09
   Print Method ...... tty
   Profile ...........
   Trace ............. 0

Mögliche Lösung, wenn Entire Output Management auf einem Großrechner-System läuft:

Vergewissern Sie sich, dass das Produkt Ghostscript auf dem Zielsystem unix installiert ist.

Legen Sie einen logischen Drucker PRTPDF des Typs DISKUNIX mit folgenden speziellen Attributen an:

                        **** ENTIRE OUTPUT MANAGEMENT ****            
  User ID XYZ       - Logical Printer >Special Attributes -           
                                                                      
  Logical Printer                                                     
     Name ............. PRTPDF__                                      
     Description ...... Print a PDF file______________                
                                                                      
  Attributes                                                          
                                                                      
    command ........... gs          
    filename ..........                                      
    filetype ..........  
    logpath ...........                                          
    Opt1 .............. -sDEVICE=printserver01:printer09
    Opt2 ..............                                               
    Parm1 .............                                               
    Parm2 .............                                               
    Parm3 .............                                               
    Path .............. /tmp
    Server ............ npr_unix
    Trace ............. 0                                             

Wenn ein binärer aktiver Report, der eine PDF-Datei enthält, auf dem Drucker PRTPDF gedruckt wird, dann wird eine Datei filename.pdf in das Verzeichnis /tmp auf dem UNIX-Computer geschrieben, auf dem der Entire System Server UNIX-Knoten npr_unix aktiv ist. Dabei ist filename der ursprüngliche Dateiname der Datei. Ghostscript sendet die Druckausgabe an den Drucker printer09 auf dem Druckerserver printserver01.

Beispiel 4 - Word-Dokumente für späteres Drucken speichern

Aufgabe:

Microsoft Word-Dokumente auf einem virtuellen Drucker drucken, der die gedruckten Seiten (nicht die Datei) in Entire Output Management für späteres Drucken auf einem echten Drucker speichert. Übergabe der Dokumenteigenschaften an Entire Output Management zwecks Anzeige (mittels Metadaten-Taste PF2).

Mögliche Lösung:

Benutzen Sie OPO, um die Daten zu erfassen. Da die Erfassung nicht durch den Entire Output Management-Monitor ausgelöst wird, wird die Druckausgabe asynchron übertragen und, unabhängig davon ob der Entire Output Management-Monitor aktiv ist oder nicht, in der definierten Entire Output Management-Container-Datei gespeichert.

Der Vorteil, Druckausgaben anstelle von Dateien zu speichern, liegt darin, dass die Entscheidungen, wie die Druckausgabe formatiert, welcher Druckerschacht benutzt werden soll, ob der Druck in Farbe erfolgen soll usw., dann erfolgen kann, wenn die Druckausgaben angestoßen werden (auf der Client-Seite).

Der Nachteil ist, dass, nachdem diese Entscheidungen getroffen wurden, die Druckausgabe und ihre Attrinute nicht mehr geändert werden können. Zum Beispiel muss der Druckertyp derselbe sein, der vom Client angefordert wurde.

OPO kann unter Verwendung von XML-Dateien Metadaten (in diesem Fall die Eigenschaften eines Word-Dokuments) übertragen. Das folgende Word-Makro liest die Eigenschaften, erstellt eine XML-Datei, die den Anforderungen von OPO entspricht, und speichert sie als word.xml im Windows-temp-Verzeichnis. Danach druckt es das Dokument auf dem Drucker PrintToNOM, der als ein beliebiger Drucker mit einem Drucker-Port des Typs OPO definiert ist (weitere Informationen siehe Abschnitt Open Print Option installieren).

Sub PrintToNOM()
Dim prop        As DocumentProperty
Dim propName    As String
Dim propString  As String
Dim CurrentDoc  As Word.Document
Dim DocName     As String
Dim DocType     As String
Dim DocPath     As String
Dim printerName As String
Set CurrentDoc = ActiveDocument
Documents.Add
If InStr(CurrentDoc.Name, ".") > 1 Then
  DocName = Left(CurrentDoc.Name, InStr(CurrentDoc.Name, ".") - 1)
  DocType = Mid(CurrentDoc.Name, InStr(CurrentDoc.Name, ".") + 1)
Else
  DocName = CurrentDoc.Name
  DocType = ""
End If
  DocPath = Replace(CurrentDoc.Path, "\", "/")
With Selection
  .InsertAfter "<?xml version='1.0'  ?>"
  .InsertParagraphAfter
  .InsertAfter "<metadata>"
  .InsertParagraphAfter
  .InsertAfter "  <filename>" & DocName & "</filename>"
  If DocType <> "" Then
    .InsertParagraphAfter
    .InsertAfter "  <filetype>" & DocType & "</filetype>"
  End If
  If DocPath <> "" Then
    .InsertParagraphAfter
    .InsertAfter "  <path>" & DocPath & "</path>"
  End If
End With
On Error Resume Next
For Each prop In CurrentDoc.BuiltInDocumentProperties
  propString = ""
  On Error Resume Next
  propString = prop.Value
  On Error GoTo skip1
  propName = Replace(prop.Name, "Number of ", vbNullString)
  If InStr(propName, "(") > 1 Then
    propName = Left(propName, InStr(propName, "(") - 1)
  End If
  propName = Replace(propName, " ", "_")
  propString = Replace(propString, "<", "-")
  propString = Replace(propString, ">", "-")
  propString = Replace(propString, """", vbNullString)
  propString = Replace(propString, "'", vbNullString)
  propString = Replace(propString, "\", "/")
  Trim (propString)
  If Len(propString) > 0 Then
    With Selection
        .InsertParagraphAfter
        .InsertAfter "  <" & propName & ">"
        .InsertAfter propString
        .InsertAfter "  </" & propName & ">"
    End With
  End If
skip1:
Next prop
On Error Resume Next
For Each prop In CurrentDoc.CustomDocumentProperties
  propString = ""
  On Error Resume Next
  propString = prop.Value
  On Error GoTo skip2
  propName = Replace(prop.Name, "Number of ", vbNullString)
  If InStr(propName, "(") > 1 Then
    propName = Left(propName, InStr(propName, "(") - 1)
  End If
  propName = Replace(propName, " ", "_")
  propString = Replace(propString, "<", "-")
  propString = Replace(propString, ">", "-")
  propString = Replace(propString, """", vbNullString)
  propString = Replace(propString, "'", vbNullString)
  propString = Replace(propString, "\", "/")
  Trim (propString)
  If Len(propString) > 0 Then
    With Selection
        .InsertParagraphAfter
        .InsertAfter "  <" & propName & ">"
        .InsertAfter propString
        .InsertAfter "  </" & propName & ">"
    End With
  End If
skip2:
Next prop
With Selection
  .InsertParagraphAfter
  .InsertAfter "</metadata>"
End With
ActiveDocument.SaveAs _
FileName:="C:\Program Files\Software AG\Open Print Option 3.2.0\word.xml", _
    FileFormat:=wdFormatText
ActiveDocument.Close
Set printerName = Trim$(Left$(ActivePrinter, _
		InStr(ActivePrinter, " on ")))
ActivePrinter = "PrintToNOM"
ActiveDocument.PrintOut
ActivePrinter = printerName
End Sub

Benutzen Sie den Microsoft Word Visual Basic Editor, um dieses Makro PrintToNOM zu speichern.

Dieses Makro druckt auf dem Drucker PrintToNOM.

Legen Sie in Windows einen Drucker PrintToNOM an, der mit OPO verlinkt ist, und konfigurieren Sie den OPO-Port so, dass word.xml als die XML-Datei für Metadaten benutzt wird.

Wenn dieses Makro ausgeführt wird, erfasst es alle Metadaten, die Microsoft Word liefert, schreibt sie in die Datei word.xml und druckt sie auf dem Drucker PrintToNOM, der die gedruckten Seiten und die Metadaten an Entire Output Management übergibt.

Beispiel 5 - AFP-Daten für späteres Drucken speichern

Aufgabe:

Die Druckfunktion einer beliebigen Windows-Anwendung benutzen, um AFP-Daten (Advanced Function Printing) zu erzeugen. Speicherung dieser Daten in Entire Output Management für späteres Drucken auf AFP-Druckern.

Mögliche Lösung:

  1. Installieren Sie einen Windows AFP-Drucker, z.B. den IBM AFP Treiber für Windows.

  2. Verlinken Sie ihn mit dem OPO-Drucker-Port (gemäß OPO-Dokumentation).

Dadurch können AFP-Daten in Entire Output Management gespeichert und an einen AFP-Drucker gesendet werden.

Beispiel 6 - XML-Dokumente

Aufgabe:

Speichern der XML-Dokumente in Entire Output Management. Zur Druckzeit sollen diese Dokumente formatiert und durch Rendering in mehrere, unterschiedliche Dokumente umgesetzt werden.

Mögliche Lösung:

  1. Erstellen Sie die gewünschten XML-Dokumente mit einer beliebigen Anwendung.

  2. Übergeben Sie sie an Entire Output Management, indem Sie das UNIX Identification Feature als Textdatei benutzen.

  3. Legen Sie mehrere Drucker des Typs DISKUNIX an, die die Dokumente an einen XML-Renderer übergeben, der für die endgültige Formatierung sorgt. Für die endgültige Formatierung kommt der Apache Formatting Objects Processor (Apache FOP) in Betracht.