Rückgabe beim Scannen

  • Hallo Forum Gemeinde,


    nach so einigen rumtesten habe ich mein Scanner wierder ans laufen gebracht.
    Zum Ablauf meines "work arount" (Programm würde ich das nicht nenne)


    Mit den Webinterface starte ich eine Seite auf der ich die Daten fur das scannen eingeben kann. Gleichzeitig werden mir da auch die Daten die schon eingelesen worden sind angezeigt.
    (Würde gerne ein Bild einlegen ahbe aber greade keinen webspeicher)


    der PHP code ist :
    [code=php]
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Scannen der Dokumente</title>
    <meta name="author" content="sam">
    <meta name="editor" content="html-editor phase 5">
    </head>
    <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">



    <!//Sektion für mehrere Seiten einscannen>
    <p>Mehrere Seiten Scannen



    <p><form action='SCANTEST.php' method='post'>


    <p>
    <input id="aufloesung" name="aufloesung" maxlength="15">
    <label for="aufloesung">Aufloesung 150DPI Default</label>
    <p>
    <button type="submit" name='scanM' value="1">Scan Start</button>


    <p>


    <input id="name" name="name" maxlength="30">
    <label for="name">Name</label>
    <p>


    <button type="submit" name='einePDF' value="1">PDF Zusammenfuehren</button>


    </form>
    <p>
    <p>Eine Seite Scannen
    <form action='SCANTEST.php' method='post'>
    <!//Name der Datei die als Ausgabe auf die Festplatte geschrieben werden soll>
    <input id="name" name="name" maxlength="30">
    <label for="name">Name</label>
    <p>
    <input id="aufloesung" name="aufloesung" maxlength="15">
    <label for="aufloesung">Aufloesung 150DPI Default</label>



    <p>
    <button type="submit" name='scan' value="1">Scan Start</button>
    </form>
    <p>
    <?php
    //Debugging TEIL
    //Ausgabe aller Post auf den echo
    //echo "<pre>"; var_dump($_POST); echo "</pre>";
    //Debugging TEIL


    $mehrfach_Scan_Start_Variable = $_POST['scanM'] ;
    $einfach_Scan_Start_Variable = $_POST['scan'] ;
    $PDF_zusammenfuehren = $_POST['einePDF'] ;
    $herunterfahren = $_POST['herunterfahren'] ;




    // es wird gepüft ob die Eingabefelder lehr sind wenn diese lehr sind werde sie mit vorgaben gefüllt
    if ($mehrfach_Scan_Start_Variable =='1' OR ($einfach_Scan_Start_Variable =='1'))
    {


    if ( empty($_POST['name']))
    {
    $namensfeld =date('dmYHis');
    }
    else
    {
    $namensfeld = $_POST['name'];
    }


    if ( empty($_POST['aufloesung']))
    {
    $DPI = '300';
    }
    else
    {
    $DPI = $_POST['aufloesung'] ;
    }



    if ($mehrfach_Scan_Start_Variable =='1')
    {
    $VERZ = 'TEMP';


    exec("sudo /home/pi/python/scanb1.sh $namensfeld $VERZ $DPI" ,$output, $return_var); // Werteübergabe innerhalb der Klammern
    echo "Seite eingescannt";
    // echo "$DPI";
    }


    }



    if ($PDF_zusammenfuehren =='1')
    {
    $VERZ = 'TEMP';
    if ( empty($_POST['name']))
    {
    $namensfeld =date('dmYHis');
    }
    else
    {
    $namensfeld = $_POST['name'];
    }


    $pdf_file = $namensfeld . ".pdf";
    exec ("sudo pdfsam-console -d ./$VERZ -o ./DATEN/". $pdf_file ." concat");
    exec ("sudo rm -r $VERZ");
    echo "Seite zusammengef&uuml;rt";


    }



    if ($einfach_Scan_Start_Variable =='1')
    {
    if ( empty($_POST['name']))
    {
    $namensfeld =date('dmYHi');
    }
    else
    {
    $namensfeld = $_POST['name'];
    }
    $VERZ = 'DATEN';
    exec("sudo /home/pi/python/scanb1.sh $namensfeld $VERZ $DPI" ,$output, $return_var); // Werteübergabe innerhalb der Klammern
    echo "Seite eingescannt";


    }
    ?>



    <br>
    <?php


    if($herunterfahren=='1')
    {
    exec ("sudo /home/python/test/halt.sh") ;
    echo "testfff";
    }
    ?>
    <p>
    <p>
    Beschreibung <br>
    Bei mehrenen Seiten solange einscannen bis alles drin ist und anschließend Namen vergeben und zusammenfügen.
    <br>
    Bei einer Seite Namen vergeben einscannen.
    <?php
    extract($_POST);
    extract($_GET);


    $verz = "DATEN";
    $verz2 = $verz ;


    $handle=opendir("$verz");


    if ($verz=="")
    {
    $verz=".";
    }
    $handle=opendir("$verz2");
    echo "<table width='50%' border='1' cellpadding='0' cellspacing='2'> ";



    if ($verz2=="")
    {
    $verz2=".";
    }
    $counter = 1 ;
    while ($file=readdir($handle))
    {
    if ($file != "." && $file != "..")
    {
    if($counter == 4)
    {



    echo "<tr><th><a href=\"$verz/$file\" > $file </a></th>";


    $filename = $verz . "/" .$file ;
    if (file_exists($filename)) {
    echo "<th>Erstellt: " . date ("d m Y H:i. </th></tr>", filemtime($filename));
    }
    echo " <br>" ;
    $counter = 1 ;
    }
    else
    {




    echo "<tr><th><a href=\"$verz/$file\" > $file </a></th>&nbsp;&nbsp;&nbsp;";
    $filename = $verz . "/" .$file ;
    if (file_exists($filename)) {
    echo "<th> Erstellt: " . date ("d m Y H:i.</th></tr>", filemtime($filename));
    }


    echo " <br>" ;
    $counter++;
    }
    }
    }
    closedir($handle);
    echo "</table>";



    ?>
    <br>
    <form action='SCANTEST.php' method='post'>
    <input type='hidden' name='herunterfahren' value='1'>
    <input type='submit' value='Herunterfahren'>
    </form>
    </body>
    </html>





    [/php]




    die sh ist :


    [code=php]
    #!/bin/sh
    TMPFILE=$1 #Enthält zukünftigen Speicherort und Dateiname des Scans
    VERZ=$2
    DPI=$3


    scanimage --format tiff --mode color --depth 1 --resolution ${DPI} -x 215mm -y 320mm -p > ${TMPFILE}.tiff #scanimage scannt die Vorlage und speichert sie als Dateiname.pnm,
    #scanimage --format tiff --mode gray --depth 8 --resolution 150 -x 15mm -y 80mm -p > test.tiff #die einzelnen Optionen sind von Scanner zu Scanner unterschiedlich (hier Farbscan
    #in einer Auflösung von 300dpi)
    convert ${TMPFILE}.tiff ${TMPFILE}.jpg
    mkdir ${VERZ}
    convert -quality 20% ${TMPFILE}.jpg ${VERZ}/${TMPFILE}.pdf


    rm -f $TMPFILE.tiff #jetzt muss nur noch die temporäre Datei gelöscht werden
    rm -f $TMPFILE.jpg #jetzt muss nur noch die temporäre Datei gelöscht werden
    #tiff2pdf -o



    [/php]


    wurde jetzt gerne noch den vortschrit des Scannen sehen und ein OK bekommen wenn alles vertig ist.
    Wie bekomme ich das hin?


    ps. wie vermeide ich das die LOG Datei anschwilt wie ein dicker brummer ?

    Edited once, last by sam007 ().

  • Ich hatte dir glaub ich das letzte mal schon zu mehreren Zeilen etwas geschrieben, unter anderem der Code-Style, wodurch sich dein Script echt schwer lesen lässt, aber auch das massive nutzen von unterschiedlichen Befehlen die über sudo ausgeführt werden...
    Daher rate ich dir erneut: Überarbeite deine Scripts, bring eine Struktur rein, nutze einheitliche Einrückungen und zwar überall


    Und wenn du eine Rückmeldung vom sh/bash Script haben willst dann verwerte die Rückgaben oder Exit-Codes vom exec(); wie es hier beschrieben wird: FAQ => Nützliche Links / Linksammlung => Befehle über PHP mit root Rechten ausführen (sudo webscript)


    Aber solange deine Scripts keine einheitlichen Einrückungen enthalten tu ich mir es nicht an den Code zu verstehen...