Faxen per PHP - Hilfe benötigt...

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Faxen per PHP - Hilfe benötigt...

    OK, wahrscheinlich werd' ich jetzt ausgelacht, aber es ist halt wie's ist...

    Faxe empfangen und per E-Mail weiterleiten ist ja am Mac (unter MacOS X 10.4.7)kein Problem. Jetzt wollte ich aber auch Faxe verschicken. Dazu hab' ich mir bisher folgendes zusammengestückelt:

    Formular:

    Quellcode

    1. <html>
    2. <body>
    3. <form method="post" action="fax.php">
    4. Nummer des Empf&auml;ngers:<br>
    5. <input type="text" name="nummer" id="nummer" value="" size="78">
    6. <p>
    7. Mitteilung:<br>
    8. <textarea cols=75 rows=12 name="faxtext" id="faxtext" wrap="physical"></textarea>
    9. <p>
    10. <input type="submit" name="submit" value="Abschicken">
    11. </form>
    12. </body>
    13. </html>
    Alles anzeigen


    PHP-Script:

    Quellcode

    1. <?php
    2. //make a file for testing, real world just pass in the filename
    3. //and run from efix creation on down
    4. define('FAX_FILE_LOCATION','/Users/Shared/createdfiles/');
    5. $filename = date("ymdHis");
    6. //create a file with no extension, extensions are hard to work with in efix
    7. if ($newfile = fopen(FAX_FILE_LOCATION.$filename,"x"))//x for new file, fails if file exists
    8. {
    9. fwrite($newfile,"\n=============================== ================================================== \nan/to: $_POST[nummer]\n================================================ =================================\n\n\n$_POST[faxtext]");
    10. fclose($newfile);
    11. }
    12. else
    13. {
    14. print("Could not create file, check permissions or file already exists");
    15. };
    16. /**********Now efix to create a tiff G3 doc***********/
    17. /**********see man efix for details******************/
    18. $do_efix = exec("efix -n".FAX_FILE_LOCATION.$filename.".%03d ".FAX_FILE_LOCATION.$filename, $output, $returnValue);
    19. if ($returnValue == 0)
    20. {
    21. $faxnum = $_POST['nummer'];
    22. /**Not sure if I need a wait state in here before setting up the fax**/
    23. print("<br>Fax starts in 5 seconds.....<br>");
    24. sleep(5);//just in case, give efix a little time
    25. //thanks to maxosxhints.com for lp -d -o stuff
    26. $dofax = exec("lp -d Internes_Modem -o phone=$faxnum ".FAX_FILE_LOCATION.$filename.".001",$output, $returnValue);
    27. //view results for debugging
    28. print("<br><hr>WWW fax server results: <br>\n");
    29. foreach ($output as $line)
    30. {
    31. print("$line<br>\n");
    32. }
    33. if ($returnValue== 0) {
    34. print("<br>If you see a request ID your fax was successfully submitted with the job name listed under result. \n");
    35. print("<br>Administrators can view this job from WWW by viewing CUPS print queue.");
    36. }
    37. else print("<br>Error submitting fax job, make note of results listed above");
    38. }
    39. ?>
    Alles anzeigen


    Das hab' ich nach einem Haufen gegoogle zusammengetragen. Soweit, so gut.
    Nun kann ich meinen alten iMac, der alle Faxe empfängt (und mir per E-Mail zustellt), auch über ein Webformular auch zum Faxe verschicken verwenden.
    Aber halt nur für einfachen Text.
    Besser wäre, wenn man eine Datei hochladen könnte, z.B. ein PDF oder irgendwelche Bildformate, evtl. sogar Word DOCs...

    Das Beste wäre, wenn unter der Textarea noch einige Hochladefelder wären und aus jedem der Felder (also textarea, hochladefelder) eine Seite generiert würde, so daß man mehrseitige Faxe versenden kann.

    Kann mir da jemand helfen?


    om.
  • hi,

    PDF sollte zumindest kein problem sein
    mach dir einfach ein upload feld ins formular
    z.B. mit dem script:

    Quellcode

    1. <html>
    2. <head> <title>Upload Script by Torben Brodt</title> </head>
    3. <body>
    4. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
    5. <input type="file" name="datei" />
    6. <input type="submit" value="Datei hochladen" />
    7. </form>
    8. <?php
    9. if (isset($_FILES['datei']) and ! $_FILES['datei']['error'])
    10. {
    11. $dir = 'ordner'; //script muss schreibrechte haben (chmod 0777)
    12. $filename = $_FILES['datei']['name'];
    13. move_uploaded_file($_FILES['datei']['tmp_name'], $dir."/".$filename);
    14. echo "<b>Status:</b> Upload komplett";
    15. } else {
    16. echo "<b>Status:</b> Fehler beim Upload";
    17. }
    18. ?>
    19. </body>
    20. </html>
    Alles anzeigen


    konvertiere das pdf in eine postscript datei
    (dazu einfach #23 in deinem script bearbeiten)
    Bei UNIX Systemen sollte es dazu schon den befehl "pdf2ps" geben.. ansonsten selbst kompilieren

    Quellcode

    1. exec("pdf2ps dateiname.pdf ".FAX_FILE_LOCATION.$filename.".001");
    2. exec("lp -d Internes_Modem -o phone=$faxnum ".FAX_FILE_LOCATION.$filename.".001",$output, $returnValue);
  • Erledigt... ;)

    Also, das war jetzt einfacher, als gedacht.
    Fakt ist, daß die ganzen Umwandlungsgeschichten vollkommen unnötig sind.

    Man gibt dem Mac eine Date zu fressen und er schickt sie brav als Fax weg - egal, welches Format. Hab' Text, jpeg, PDF, TIFF, sogar HTML (!) probiert, er macht's, ohne zu murren!

    Danke für die Hilfe!


    om.