home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #3 / amigamamagazinepolishissue1998.iso / bazy / adm / arexx / adm-arexxmakros.lha / FaxProgramme / GPFax / FinalWriterToGPFax.rexx next >
OS/2 REXX Batch file  |  1995-06-04  |  6KB  |  181 lines

  1. /*
  2.    $VER: FinalWriterToGPFax 1.0 (15.4.95)
  3.  
  4. --- Kurzbeschreibung:
  5.  
  6.    Script erstellt aus einem FinalWriter-Dokument mit Hilfe von GPFax
  7.    ein Fax-Dokument. Aus FinalWriter heraus aufzurufen!
  8.    Es wird ueber die Menueleiste von Finalwriter integriert und steht
  9.    per Button zu Verfuegung.
  10.  
  11. --- Voreinstellungen (GPFax, s.u.):
  12.  
  13.    -Q=IconMode; -S=No Serial-Device open; -W=WB-Colour
  14.    -X=Icon X-Pos.; -Y=Icon Y-Pos.
  15.  
  16. --- Ausführliche Beschreibung:
  17.  
  18.    Nach Start dieses Script installiert GPFax erst sein Printerdevice
  19.    und faengt dadurch saemtliche Druckauftraege ab. Dieses werden dann
  20.    in ein Fax gewandelt. Fuer Finalwriter stellt sich die FAX-Erstellung
  21.    als ein einfacher Druckauftrag dar. Wurde das Dokument erfolgreich
  22.    "ausgedruckt", schaltet sich GPFax in den Vordergrund und stellt
  23.    das durch FW erstellte Dokument als FAX dar. Wird diese Darstellung
  24.    verlassen, erscheint FW wieder im Vordergrund. Per Requester erfragt
  25.    das Script nunmehr, ob die Konvertierung erfolgreich war oder nicht.
  26.  
  27.    War die Wandlung fehlerhaft, so besteht die Moeglichkeit das FAX zu
  28.    loeschen und mit Finalwriter ein Neues zu erstellen. Im Erfolgfall
  29.    besteht die Moeglichkeit das FAX sofort o. spaeter zu verschicken.
  30.    Je nachdem wird FW beendigt oder nicht.
  31.  
  32.    Das Script versucht des Weiteren eine Namensanpassung durchzufuehren.
  33.    Das heiszt, der Dokumentenname von FW wird fuer GPFax uebernommen,
  34.    so dasz eine spaetere Auffindung erleichtert wird. Sollte dies nicht
  35.    moeglich sein, so wird der von GPFax generierte Name beibehalten.
  36.  
  37. --- History
  38.  
  39.    15-04-95  [CaK] -  Erste Version.
  40.  
  41.    Von Carsten Kullik.
  42.  
  43. */
  44.  
  45. /*------------------Voreinstellungen---------------------
  46.    -Q=IconMode; -S=No Serial-Device open; -W=WB-Colour
  47.    -X=Icon X-Pos.; -Y=Icon Y-Pos.
  48. --------------------------------------------------------*/
  49.  
  50. Run_FAXPrg = "Run >NIL: GPFax:GPFax -Q -W -S -X0 -Y3"
  51. FAX_Out = "GPFax:FAX_Out"
  52. Error_Open = '"Kann GPFax nicht initialisieren!"'
  53.  
  54. /*===================Programmstart======================*/
  55.  
  56. Options Results
  57.  
  58. Status PortName             /*ARexx-Portname des akt. Dokumentes*/
  59. FWPort = RESULT
  60. Address Value FWPort
  61.  
  62. Save                        /*Sichere das akt. FinalWriter-Dokument*/
  63. If RC ~= 0 then             /*Fehler bei Datensicherung*/
  64.    do
  65.    ShowMessage 1 0 '"Dokument nicht gesichert!" "" "" "Ende" "" ""'
  66.    Exit(20)                 /*Script abbrechen, Dokument nicht gespeichert*/
  67.    end
  68.  
  69. Status FileName             /*Ermittle den Dokumentenname*/
  70. DOSName = '"'||RESULT||'"'
  71. ShowMessage 1 0 '"Das Dokument"' DOSName '"in ein FAX umsetzen?"',
  72.                 '"Ja" "Nein" ""'
  73. If RESULT ~= 1 then            /*Dokument nicht wandeln*/
  74.    Exit(5)                     /*Script abbrechen*/
  75.  
  76. If ~Show("P","REXX_GPFAX") then                     /*Laeuft GPFax schon?*/
  77.    do                                               /*Nein, dann starten*/
  78.    Shell Command Run_FAXPrg
  79.    Warte:                                           /*Warte auf Rexx-Port*/
  80.    If ~Show("P", "REXX_GPFAX") Then Signal Warte
  81.    end
  82. Address "REXX_GPFAX"
  83. PRTDriver On                    /*aktiviere GPFax-PrinterDevice*/
  84. AutoAnswer Off                  /*AutoAnswer abschalten*/
  85.  
  86. Address Value FWPort            /*FinalWriter*/
  87. GfxPrintPrefs SHADING GreyScale /*Druck in Graustufen*/
  88. Print Prompt                    /*Druck ueber GPFax-PrinterDevice*/
  89. if RC ~= 0 then                 /*Fehler, z.B. Druckabbruch*/
  90.    Signal Ende_GPFax
  91. ScreenToBack                    /*FinalWriter in den Hintergrund*/
  92.  
  93. Address "REXX_GPFAX"            /*GPFax*/
  94. LastFile P                      /*Ermittle den erzeugten FAX-Dateinamen*/
  95. FAXName = RESULT                /*und stelle das FAX auf dem Monitor dar*/
  96. ViewFax FAXName
  97.  
  98. Address Value FWPort            /*FinalWriter*/
  99. ScreenToFront
  100. ShowMessage 1 0 '"Wurde das Dokument"' DOSName '"richtig umgesetzt?"',
  101.                 '"Ja" "Löschen" ""'
  102. If RESULT ~= 1 then
  103.    do
  104.    Shell Command "Delete "||FAXName||".p#?"                  /*Loesche FAX*/
  105.    ShowMessage 2 0 '"GPFax beendigen?" "" "" "Ja" "Nein" ""'
  106.    If RESULT = 1 then
  107.       do
  108.       Address "REXX_GPFAX"
  109.       QuitFAX
  110.       end
  111.    Exit(5)
  112.    end
  113.  
  114. /*Wandle den Dateinamen des FAX in den eingegebenen DOS-Namen*/
  115. Seite = 01
  116. DOSName = FAX_Out||'/'||Strip(DOSName, B, '"')
  117. RENAME = 'Rename '||FAXName||'.p'||Seite||' to "'||DOSName'.p'||Seite||'"'
  118. do while ((~Exists(DOSName||'.p'||Seite)) & (Seite>0) & (Seite<100))
  119.    If Exists(FAXName||'.p'||Seite) then
  120.       do
  121.          Seite = Seite + 1
  122.          If (length(Seite) = 1) then Seite = Insert('0', Seite)
  123.       end
  124.    else
  125.       do
  126.       Seite = Seite - 1
  127.          do while (Seite > 0)
  128.             If (length(Seite) = 1) then Seite = Insert('0', Seite)
  129.             Shell Command RENAME
  130.             Seite = Seite - 1
  131.          end
  132.       FAXName = DOSName
  133.       end
  134. end
  135.  
  136. ShowMessage 1 0 '"'||FAXName||'"' '"sofort versenden?" ""',
  137.                 '"Ja" "Nein" ""'
  138. If RESULT ~= 1 then
  139.    Signal Ende_GPFax
  140. else                     /*FAX sofort versenden (Initialisiere GPFax)*/
  141.    do
  142.       do forever
  143.          Address "REXX_GPFAX"
  144.          OpenSerial
  145.          If RC ~= 0 then
  146.             do
  147.             Address Value FWPort
  148.             ShowMessage 1 0 Error_Open '"Schnittstelle belegt?" ""',
  149.                                        '"Prüfe" "Ende" ""'
  150.             If RESULT ~= 1 then Signal Ende_GPFax
  151.             end
  152.          else
  153.             leave
  154.       end
  155.       do forever
  156.          Address "REXX_GPFAX"
  157.          InitModem
  158.          If RC ~= 0 then
  159.             do
  160.             Address Value FWPort
  161.             ShowMessage 1 0 Error_Open '"Modem eingeschaltet?" ""',
  162.                                        '"Prüfe" "Ende" ""'
  163.             If RESULT ~= 1 then Signal Ende_GPFax
  164.             end
  165.          else
  166.             leave
  167.       end
  168.       Address Value FWPort
  169.       Quit Force
  170.    end
  171.  
  172. Exit(0)                /*ARexx-Script erfolgreich abschlieszen*/
  173.  
  174. /*---Unterprg. beendigt GPFax & ARexx-Script nach Error/Abbruch---*/
  175.  
  176. Ende_GPFax:
  177. Address "REXX_GPFAX"
  178. QuitFAX
  179. Exit(10)
  180.  
  181.