home *** CD-ROM | disk | FTP | other *** search
- /*
- $VER: FinalWriterToGPFax 1.0 (15.4.95)
-
- --- Kurzbeschreibung:
-
- Script erstellt aus einem FinalWriter-Dokument mit Hilfe von GPFax
- ein Fax-Dokument. Aus FinalWriter heraus aufzurufen!
- Es wird ueber die Menueleiste von Finalwriter integriert und steht
- per Button zu Verfuegung.
-
- --- Voreinstellungen (GPFax, s.u.):
-
- -Q=IconMode; -S=No Serial-Device open; -W=WB-Colour
- -X=Icon X-Pos.; -Y=Icon Y-Pos.
-
- --- Ausführliche Beschreibung:
-
- Nach Start dieses Script installiert GPFax erst sein Printerdevice
- und faengt dadurch saemtliche Druckauftraege ab. Dieses werden dann
- in ein Fax gewandelt. Fuer Finalwriter stellt sich die FAX-Erstellung
- als ein einfacher Druckauftrag dar. Wurde das Dokument erfolgreich
- "ausgedruckt", schaltet sich GPFax in den Vordergrund und stellt
- das durch FW erstellte Dokument als FAX dar. Wird diese Darstellung
- verlassen, erscheint FW wieder im Vordergrund. Per Requester erfragt
- das Script nunmehr, ob die Konvertierung erfolgreich war oder nicht.
-
- War die Wandlung fehlerhaft, so besteht die Moeglichkeit das FAX zu
- loeschen und mit Finalwriter ein Neues zu erstellen. Im Erfolgfall
- besteht die Moeglichkeit das FAX sofort o. spaeter zu verschicken.
- Je nachdem wird FW beendigt oder nicht.
-
- Das Script versucht des Weiteren eine Namensanpassung durchzufuehren.
- Das heiszt, der Dokumentenname von FW wird fuer GPFax uebernommen,
- so dasz eine spaetere Auffindung erleichtert wird. Sollte dies nicht
- moeglich sein, so wird der von GPFax generierte Name beibehalten.
-
- --- History
-
- 15-04-95 [CaK] - Erste Version.
-
- Von Carsten Kullik.
-
- */
-
- /*------------------Voreinstellungen---------------------
- -Q=IconMode; -S=No Serial-Device open; -W=WB-Colour
- -X=Icon X-Pos.; -Y=Icon Y-Pos.
- --------------------------------------------------------*/
-
- Run_FAXPrg = "Run >NIL: GPFax:GPFax -Q -W -S -X0 -Y3"
- FAX_Out = "GPFax:FAX_Out"
- Error_Open = '"Kann GPFax nicht initialisieren!"'
-
- /*===================Programmstart======================*/
-
- Options Results
-
- Status PortName /*ARexx-Portname des akt. Dokumentes*/
- FWPort = RESULT
- Address Value FWPort
-
- Save /*Sichere das akt. FinalWriter-Dokument*/
- If RC ~= 0 then /*Fehler bei Datensicherung*/
- do
- ShowMessage 1 0 '"Dokument nicht gesichert!" "" "" "Ende" "" ""'
- Exit(20) /*Script abbrechen, Dokument nicht gespeichert*/
- end
-
- Status FileName /*Ermittle den Dokumentenname*/
- DOSName = '"'||RESULT||'"'
- ShowMessage 1 0 '"Das Dokument"' DOSName '"in ein FAX umsetzen?"',
- '"Ja" "Nein" ""'
- If RESULT ~= 1 then /*Dokument nicht wandeln*/
- Exit(5) /*Script abbrechen*/
-
- If ~Show("P","REXX_GPFAX") then /*Laeuft GPFax schon?*/
- do /*Nein, dann starten*/
- Shell Command Run_FAXPrg
- Warte: /*Warte auf Rexx-Port*/
- If ~Show("P", "REXX_GPFAX") Then Signal Warte
- end
- Address "REXX_GPFAX"
- PRTDriver On /*aktiviere GPFax-PrinterDevice*/
- AutoAnswer Off /*AutoAnswer abschalten*/
-
- Address Value FWPort /*FinalWriter*/
- GfxPrintPrefs SHADING GreyScale /*Druck in Graustufen*/
- Print Prompt /*Druck ueber GPFax-PrinterDevice*/
- if RC ~= 0 then /*Fehler, z.B. Druckabbruch*/
- Signal Ende_GPFax
- ScreenToBack /*FinalWriter in den Hintergrund*/
-
- Address "REXX_GPFAX" /*GPFax*/
- LastFile P /*Ermittle den erzeugten FAX-Dateinamen*/
- FAXName = RESULT /*und stelle das FAX auf dem Monitor dar*/
- ViewFax FAXName
-
- Address Value FWPort /*FinalWriter*/
- ScreenToFront
- ShowMessage 1 0 '"Wurde das Dokument"' DOSName '"richtig umgesetzt?"',
- '"Ja" "Löschen" ""'
- If RESULT ~= 1 then
- do
- Shell Command "Delete "||FAXName||".p#?" /*Loesche FAX*/
- ShowMessage 2 0 '"GPFax beendigen?" "" "" "Ja" "Nein" ""'
- If RESULT = 1 then
- do
- Address "REXX_GPFAX"
- QuitFAX
- end
- Exit(5)
- end
-
- /*Wandle den Dateinamen des FAX in den eingegebenen DOS-Namen*/
- Seite = 01
- DOSName = FAX_Out||'/'||Strip(DOSName, B, '"')
- RENAME = 'Rename '||FAXName||'.p'||Seite||' to "'||DOSName'.p'||Seite||'"'
- do while ((~Exists(DOSName||'.p'||Seite)) & (Seite>0) & (Seite<100))
- If Exists(FAXName||'.p'||Seite) then
- do
- Seite = Seite + 1
- If (length(Seite) = 1) then Seite = Insert('0', Seite)
- end
- else
- do
- Seite = Seite - 1
- do while (Seite > 0)
- If (length(Seite) = 1) then Seite = Insert('0', Seite)
- Shell Command RENAME
- Seite = Seite - 1
- end
- FAXName = DOSName
- end
- end
-
- ShowMessage 1 0 '"'||FAXName||'"' '"sofort versenden?" ""',
- '"Ja" "Nein" ""'
- If RESULT ~= 1 then
- Signal Ende_GPFax
- else /*FAX sofort versenden (Initialisiere GPFax)*/
- do
- do forever
- Address "REXX_GPFAX"
- OpenSerial
- If RC ~= 0 then
- do
- Address Value FWPort
- ShowMessage 1 0 Error_Open '"Schnittstelle belegt?" ""',
- '"Prüfe" "Ende" ""'
- If RESULT ~= 1 then Signal Ende_GPFax
- end
- else
- leave
- end
- do forever
- Address "REXX_GPFAX"
- InitModem
- If RC ~= 0 then
- do
- Address Value FWPort
- ShowMessage 1 0 Error_Open '"Modem eingeschaltet?" ""',
- '"Prüfe" "Ende" ""'
- If RESULT ~= 1 then Signal Ende_GPFax
- end
- else
- leave
- end
- Address Value FWPort
- Quit Force
- end
-
- Exit(0) /*ARexx-Script erfolgreich abschlieszen*/
-
- /*---Unterprg. beendigt GPFax & ARexx-Script nach Error/Abbruch---*/
-
- Ende_GPFax:
- Address "REXX_GPFAX"
- QuitFAX
- Exit(10)
-
-