code.fastix.org

Dateiansicht:

Datei:Projekte -> PHP:WebScan -> webScan.php
md5:ae126a8d9c4dec8886f56c31bf1e690e
sha1:9c08097cb1c2133e6930b6ac51c5e4b160c8622e
  1. <?php
  2.  
  3. ################## Config ################################
  4. $deleteFilesFromTemp = true;  # true, false
  5. $gamma               = '.3';  # 0..1 as String
  6. $showType            = 'jpg'; # 'jpg', 'tiff', 'pdf'
  7. ##########################################################
  8.  
  9. $scanImage = new scanImage ( $deleteFilesFromTemp, $gamma, $showType);
  10. $scanImage -> scan();
  11.  
  12. class scanImage {
  13.  
  14.     public $deleteFilesFromTemp = true;
  15.     public $gamma               = '.3';
  16.     public $showType            = 'jpg';
  17.     public $scanner             = false;
  18.    
  19.     function __construct( $deleteFilesFromTemp = true, $gamma = '.3', $showType = 'jpg' ) {
  20.    
  21.         $this -> deleteFilesFromTemp = $deleteFilesFromTemp;
  22.         $this -> gamma = $gamma;
  23.         $this -> showType = $showType;
  24.         if ( ! isset( $_SESSION['scannerDevice'] ) || '' == $_SESSION['scannerDevice'] ) {
  25.             # Init: Suchen des devices
  26.            $scanner = trim( `scanimage -L | grep "^device"` );
  27.             $scanner = preg_replace( "/^.*`/", '', $scanner );
  28.             $scanner = preg_replace( "/'.*$/", '', $scanner );
  29.            
  30.             if ( $scanner ) {
  31.                 $_SESSION['scannerDevice'] = $scanner;
  32.             } else {
  33.                 $_SESSION['scannerDevice'] = false;
  34.                 unset( $_SESSION['scannerDevice'] );
  35.                 print "Kein Scanner gefunden.";
  36.                 exit;
  37.             }
  38.         } else {
  39.             $this -> scanner = $_SESSION['scannerDevice'];
  40.         }
  41.     }
  42.    
  43.     function scan() {
  44.    
  45.         $scanner = $_SESSION['scannerDevice'];
  46.         $gamma   = $this -> gamma;
  47.        
  48.        
  49.         $t=`ps ax | grep "scanimage -d $scanner" | grep -v "ps ax" | wc -l`;
  50.         if ( 1 < intval( $t ) ) {
  51.             die ("($t) Der Scanner ist aktiv. Warten Sie eine Weile und <a href='#'>laden Sie dann diese Seite erneut.</a>");
  52.         }
  53.  
  54.         $unixTime = date( 'Y-m-d_His' );
  55.         $tmpfile_tiff = '/tmp/' . $unixTime . '.tiff';
  56.         $dummy=`/usr/bin/scanimage -x 210 -y 297 --format tiff -d $scanner > $tmpfile_tiff`;
  57.        
  58.         switch ( $this -> showType ) {
  59.  
  60.             case 'tiff':
  61.                 header( 'Content-Type: image/tiff' );
  62.                 header( 'Content-Disposition: attachment; filename="' . $unixTime . '.tiff' . '"' );                
  63.                 print file_get_contents( $tmpfile_tiff );
  64.                 break;
  65.  
  66.             case 'jpg':
  67.                 $tmpfile_jpg  = '/tmp/' . $unixTime . '.jpg';
  68.                 $dummy=`/usr/bin/convert -gamma $gamma -auto-level -despeckle $tmpfile_tiff $tmpfile_jpg`;
  69.                 header( 'Content-Type: image/jpg' );
  70.                 print file_get_contents( $tmpfile_jpg );
  71.                 break;
  72.  
  73.             case 'pdf':
  74.                 $tmpfile_pdf  = '/tmp/' . $unixTime . '.pdf';
  75.                 $dummy=`tiff2pdf -o $tmpfile_pdf -j -b -p A4 -f $tmpfile_tiff`;
  76.                 header( 'Content-Type: application/pdf' );
  77.                 header( 'Content-Disposition: inline; filename="' . $unixTime . '.pdf' . '"' );
  78.                 print file_get_contents( $tmpfile_pdf );
  79.                 break;
  80.                
  81.             default:
  82.                 echo "Konfigurationsfehler. Sie (oder ein Admin) haben (hat) einen unzulässigen Dateityp eingestellt.";
  83.                 break;
  84.         }
  85.        
  86.         if ( $this -> deleteFilesFromTemp ) {
  87.             if ( isset( $tmpfile_tiff ) && is_file( $tmpfile_tiff ) ) unlink( $tmpfile_tiff );
  88.             if ( isset( $tmpfile_jpg  ) && is_file( $tmpfile_jpg  ) ) unlink( $tmpfile_jpg  );
  89.             if ( isset( $tmpfile_pdf  ) && is_file( $tmpfile_pdf  ) ) unlink( $tmpfile_pdf  );
  90.         }
  91.     }
  92. }