Mercurial > pdfconcat
view pdfconcat.php @ 0:8f7e68d54c6d
initial commit: should be already usable
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Thu, 29 Aug 2013 13:58:17 +0200 |
parents | |
children |
line wrap: on
line source
<!-- pdfconcat-0.1 Written by markus schnalke <meillo@marmaro.de>, developed at KIT-Library, Karlsruhe. This is free software under the CC0 license. http://marmaro.de/prog/pdfconcat --> <html> <head> <title>PDF concat and detextify</title> <meta name="author" content="markus schnalke <meillo@marmaro.de>"> <meta name="copyright" content="No copyright applies."> </head> <body> <h2>PDF concat and detextify</h2> <?php define('PDFDETEXTIFY', dirname(__FILE__).'/bin/pdfdetextify'); define('PDFCONCAT', dirname(__FILE__).'/bin/pdfconcat'); define('LOGFILE', dirname(__FILE__).'/log'); define('UPLOADDIR', 'upload'); function detextify($file) { $newfile = tempnam(sys_get_temp_dir(), basename(__FILE__)."."); $cmd = sprintf("%s %s 2>&1 >%s", PDFDETEXTIFY, $file, $newfile); system($cmd); return $newfile; } function concatpdfs($files) { $newfile = sprintf("%s/%s/%s.pdf", dirname(__FILE__), UPLOADDIR, date('Y-m-d_H-i-s')); $cmd = sprintf("%s %s 2>&1 >%s", PDFCONCAT, implode(' ', $files), $newfile); system($cmd); foreach ($files as $file) { unlink($file); } return sprintf("%s/%s", UPLOADDIR, basename($newfile)); } function procfiles() { $date = date("Y-m-d H:i:s"); $ip = $_SERVER['REMOTE_ADDR']; $files = array(); foreach ($_FILES as $key => $val) { if ($val['error'] == UPLOAD_ERR_NO_FILE) { continue; } if ($val['error'] > 0) { echo "Errors in transferring $val[name]. Skipping.\n"; echo "($val[error])\n"; continue; } if (isset($_POST[$key.'detextify']) && $_POST[$key.'detextify'] == 'on') { $files[] = detextify($val['tmp_name']); } else { $files[] = $val['tmp_name']; } } $newfile = concatpdfs($files); // log $logmsg = sprintf("[%s] %s creates `%s'\n", $date, $ip, $newfile); file_put_contents(LOGFILE, $logmsg, FILE_APPEND); return $newfile; } // main() if (isset($_POST['submit'])) { echo '<pre>'; $outfile = procfiles(); echo '</pre>'; echo '<hr>'; echo '<h2><a href="'. $outfile .'">The concatenated PDF</a></h2>'; echo '<hr>'; } ?> <p> This webservice concatenates PDF files and optionally converts their text to bitmaps. </p> <p> The files are stored temporary on the webserver. The detextification function modifies them. Use this service only of you have the appropriate rights on the files. </p> <form action="<?php echo basename($_SERVER['SCRIPT_NAME']); ?>" method="post" enctype="multipart/form-data"> <p> <input type="file" name="pdf1" /> detextify? <input type="checkbox" name="pdf1detextify" /> <br /> <input type="file" name="pdf2" /> detextify? <input type="checkbox" name="pdf2detextify" /> <br /> <input type="file" name="pdf3" /> detextify? <input type="checkbox" name="pdf3detextify" /> <br /> <input type="file" name="pdf4" /> detextify? <input type="checkbox" name="pdf4detextify" /> <br /> <input type="file" name="pdf5" /> detextify? <input type="checkbox" name="pdf5detextify" /> </p> <p> (Maximum file size: <?php echo ini_get('upload_max_filesize'); ?>) </p> <p> <input type="submit" name="submit" /> </p> </form> </body> </html>