ScanImageWebGUI/index.php
2014-08-23 22:13:24 -04:00

103 lines
4.0 KiB
PHP

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Scanimage Web GUI</title>
</head>
<body>
<?php
if (isset($_POST["scan"])) {
$findScanner = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("pipe", "w") // stderr is a file to write to
);
$env=array();
$process = proc_open("/usr/bin/sane-find-scanner", $findScanner, $pipes, '/tmp', $env);
if (is_resource($process)) {
$data = stream_get_contents($pipes[2]);
$data .= stream_get_contents($pipes[1]);
}
proc_close($process);
$match = preg_match('/libusb:\d+:\d+/', $data, $matches);
if ($match&&count($matches)) {
$address=$matches[0];
}
$fileName = "Scan_".date("Y-m-d_H.i.s");
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("pipe", "w") // stderr is a file to write to
);
$cwd = '/tmp';
$env = array();
$process = proc_open("/usr/bin/scanadf -d epkowa:net:pr01.lzu01.point808.com --output-file ".
"/var/www/scanout/$fileName-%04d --quick-format Letter".
" --mode $_POST[mode] --resolution $_POST[quality] --source Automatic Document Feeder", $descriptorspec, $pipes, $cwd, $env);
if (is_resource($process)) {
$errors = stream_get_contents($pipes[2]);
$output = stream_get_contents($pipes[1]);
}
$dirList = scandir("/var/www/scanout");
$inputFiles = array();
$firstFile = "";
foreach ($dirList as $file) {
if (stristr($file, $fileName)) {
//this is one of our input files
if ($firstFile=="") $firstFile = $file;
array_push($inputFiles, $file);
}
}
if (count($inputFiles))
{
$path="";
foreach ($inputFiles as $file) {
$path .= "pnm:/var/www/scanout/$file ";
}
$output = `/usr/bin/convert pnm:/var/www/scanout/$firstFile -resize '>300x' -strip /var/www/scanout/$firstFile.jpg`;
$output .= `/usr/bin/convert -page a4 $path /var/www/scanout/$fileName.pdf`;
echo "Scan Successful!";
} else {
echo "Scan Failed! No pages were scanned. Is there a document in the scanner?";
}
ob_flush();
echo "";
}
?>
<h1>Scan A Document</h1>
<h3>Use the drop-downs below to set preferences.<br />
Load documents in the feeder and press "Scan". When<br />
the job completes, you will be able to pick your file<br />
from the selection at the bottom of the page.</h3>
<form action="index.php" method="post">
Color or Black & White?
<select name="mode">
<option value="Binary" selected="selected">Black & White</option>
<option value="Gray">Grayscale</option>
<option value="Color">Color</option>
</select><br />
Regular, high, low quality?
<select name="quality">
<option value="72dpi">Low (FAST!)</option>
<option value="150dpi" selected="selected">Standard</option>
<option value="300dpi">High (EXTREMELY SLOW!!!)</option>
</select><br />
<input type="hidden" name="scan" value="yes" />
<input type="submit" onclick="this.disabled=true;this.value='Scanning - PLEASE be patient!';this.form.submit();" value="Scan!" />
</form>
<h2>Previous Scans</h2>
<h4>(Newest scan is on top!)</h4>
<?php
$phpfiles = array_reverse(glob("scanout/*.pdf"));
foreach($phpfiles as $phpfile) {
echo "<a target=\"_blank\" href=$phpfile>".basename($phpfile)."</a><br>";
}
?>
</body>
</html>