Vorschaubilder massenweise erzeugen

Aus kvwmap
Wechseln zu: Navigation, Suche

Mit diesem PHP-Skript lassen sich die Vorschaubilder, die kvwmap beim Hochladen eines Dokumentes erzeugt, in einem Verzeichnisbaum rekursiv massenweise neu erstellen. Dabei wird bei mehrseitigen PDFs die Seitenzahl in das Vorschaubild geschrieben.

<?

$documentpath = '/var/www/data/nachweise';

function create_previews($dir){
	$files = scandir($dir);
	foreach($files as $file){
		if($file != "." && $file != ".."){
			if(is_dir($dir.'/'.$file)){
				create_previews($dir.'/'.$file);
			}elseif(strpos($file, 'thumb') === false){
				$file = $dir.'/'.$file;
				$dateinamensteil = explode('.', $file);
				$label = '';
				if(strtolower($dateinamensteil[1]) == 'pdf'){
					exec('gs -q -dNODISPLAY -c "('.$file.') (r) file runpdfbegin pdfpagecount = quit"', $output);
					if((int)$output[0] > 1){
						$label = "-fill black -undercolor white -gravity North -pointsize 18 -annotate +0+15 ' ".$output[0]." Seiten '";
					}
				}
				exec('convert '.$file.'[0] -quality 75 -background white '.$label.' -flatten -resize 1000x1000\> '.$dateinamensteil[0].'_thumb.jpg');
				echo "Erzeuge ".$dateinamensteil[0]."_thumb.jpg\n";
			}
		}
	}
}

create_previews($documentpath);

?>