open($filename) === false) { die('Failed to open ' . $filename); } mkdir($directory); $zip->extractTo($directory); $zip->close(); // Read the .srt files from the directory foreach (new DirectoryIterator($directory) as $fileInfo) { if ($fileInfo->isDot()) { continue; } $filename = $fileInfo->getFilename(); echo 'Parsing: ' . $filename . PHP_EOL; $files[pathinfo($filename, PATHINFO_FILENAME)] = file_get_contents($directory.'/'.$filename); } foreach ($files as $key => $value) { $values = explode(PHP_EOL, $value); $newValue = ''; foreach ($values as $line) { $line = trim($line); if (empty($line)) { continue; } if ((strpos($line, ':') !== false) && (strpos($line, ',') !== false)) { continue; } $newValue .= $line . PHP_EOL; } $files[$key] = $newValue; } // Create and populate the new PDF file try { echo 'Creating: ' . $directory . '.pdf' . PHP_EOL; $p = new PDFlib(); if ($p->begin_document($directory . '.pdf', '') == 0) { die('ERROR: ' . $p->get_errmsg()); } $p->set_info("Creator", __FILE__); $p->set_info("Author", "Georgia Tech"); $p->set_info("Title", $directory); $texty = 802; $p->begin_page_ext(595, 842, ''); foreach ($files as $key => $value) { $font = $p->load_font('Times-BoldItalic', 'iso8859-1', ''); $p->setfont($font, 18.0); $p->show_xy(' ', 50, $texty); $p->continue_text($key); $p->continue_text(' '); $lines = explode('|', wordwrap($value, 100, '|')); foreach ($lines as $line) { $font = $p->load_font('Times-Roman', 'iso8859-1', ''); $p->setfont($font, 12.0); $p->continue_text($line); $p->continue_text(' '); $texty = $p->get_value('texty', 0); if ($texty <= 60) { $p->end_page_ext(''); $texty = 802; $p->begin_page_ext(595, 842, ''); $font = $p->load_font('Times-Roman', 'iso8859-1', ''); $p->setfont($font, 12.0); $p->show_xy(' ', 50, $texty); } } $texty = $p->get_value('texty', 0); if ($texty <= 60) { $p->end_page_ext(''); $texty = 802; $p->begin_page_ext(595, 842, ''); } else { $p->continue_text(' '); } } $p->end_page_ext(''); $p->end_document(""); } catch (PDFlibException $e) { die("PDFlib exception occurred:\n" . "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " . $e->get_errmsg() . "\n"); } catch (Exception $e) { die($e); } $p = 0; exec('rm -rf "' . $directory . '"');