meillo@0: meillo@0: meillo@0: meillo@0: PDF concat and detextify meillo@0: meillo@0: meillo@0: meillo@0: meillo@0:

PDF concat and detextify

meillo@0: meillo@0: &1 >%s", PDFDETEXTIFY, $file, $newfile); meillo@0: system($cmd); meillo@0: return $newfile; meillo@0: } meillo@0: meillo@0: meillo@0: function meillo@0: concatpdfs($files) meillo@0: { meillo@0: $newfile = sprintf("%s/%s/%s.pdf", dirname(__FILE__), UPLOADDIR, meillo@0: date('Y-m-d_H-i-s')); meillo@0: $cmd = sprintf("%s %s 2>&1 >%s", PDFCONCAT, implode(' ', $files), meillo@0: $newfile); meillo@0: system($cmd); meillo@0: foreach ($files as $file) { meillo@0: unlink($file); meillo@0: } meillo@0: return sprintf("%s/%s", UPLOADDIR, basename($newfile)); meillo@0: } meillo@0: meillo@0: meillo@0: function meillo@0: procfiles() meillo@0: { meillo@0: $date = date("Y-m-d H:i:s"); meillo@0: $ip = $_SERVER['REMOTE_ADDR']; meillo@0: $files = array(); meillo@0: foreach ($_FILES as $key => $val) { meillo@0: if ($val['error'] == UPLOAD_ERR_NO_FILE) { meillo@0: continue; meillo@0: } meillo@0: if ($val['error'] > 0) { meillo@0: echo "Errors in transferring $val[name]. Skipping.\n"; meillo@0: echo "($val[error])\n"; meillo@0: continue; meillo@0: } meillo@0: if (isset($_POST[$key.'detextify']) && $_POST[$key.'detextify'] == 'on') { meillo@0: $files[] = detextify($val['tmp_name']); meillo@0: } else { meillo@0: $files[] = $val['tmp_name']; meillo@0: } meillo@0: } meillo@0: $newfile = concatpdfs($files); meillo@0: // log meillo@0: $logmsg = sprintf("[%s] %s creates `%s'\n", $date, $ip, $newfile); meillo@0: file_put_contents(LOGFILE, $logmsg, FILE_APPEND); meillo@0: meillo@0: return $newfile; meillo@0: meillo@0: } meillo@0: meillo@0: meillo@0: // main() meillo@0: meillo@0: if (isset($_POST['submit'])) { meillo@0: echo '
';
meillo@0: 	$outfile = procfiles();
meillo@0: 	echo '
'; meillo@0: echo '
'; meillo@0: echo '

The concatenated PDF

'; meillo@0: echo '
'; meillo@0: } meillo@0: meillo@0: ?> meillo@0: meillo@0: meillo@0:

meillo@0: This webservice concatenates PDF files and optionally converts their meillo@0: text to bitmaps. meillo@0:

meillo@0:

meillo@0: The files are stored temporary on the webserver. The detextification meillo@0: function modifies them. Use this service only of you have the meillo@0: appropriate rights on the files. meillo@0:

meillo@0: meillo@0:
meillo@0:

meillo@0: meillo@0: detextify? meillo@0:
meillo@0: meillo@0: detextify? meillo@0:
meillo@0: meillo@0: detextify? meillo@0:
meillo@0: meillo@0: detextify? meillo@0:
meillo@0: meillo@0: detextify? meillo@0:

meillo@0:

meillo@0: (Maximum file size: ) meillo@0:

meillo@0:

meillo@0: meillo@0:

meillo@0:
meillo@0: meillo@0: meillo@0: