Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- ini_set('dispay_errors',1);
- require_once('tcpdf_include.php');
- function Convertion($proc, $xmlFile, $xslFile){
- $proc->setSourceFromFile($xmlFile);
- $proc->compileFromFile($xslFile);
- $handle = fopen($page_name,"w");
- fclose($handle);
- $proc->setOutputFile($page_name);
- $proc->transformToFile();
- $proc->clearParameters();
- $proc->clearProperties();
- }
- function Extract($name,$path) {
- $zip = new ZipArchive;
- if ($zip->open($name) === TRUE) {
- $zip->extractTo($path);
- $zip->close();
- echo 'ok';
- } else {
- echo 'something is going wrong!';
- }
- }
- function ProducePDF($pdf_name, $html_page){
- // create new PDF document
- $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
- // set document information
- $pdf->SetCreator(PDF_CREATOR);
- $pdf->SetAuthor('Tony');
- $pdf->SetTitle('A document');
- $pdf->SetSubject('Information');
- $pdf->SetKeywords('TCPDF, PDF');
- // set default header data
- $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' test', PDF_HEADER_STRING);
- // set header and footer fonts
- $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
- $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
- // set default monospaced font
- $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
- // set margins
- $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
- $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
- $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
- // set auto page breaks
- $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
- // set image scale factor
- $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
- // set some language-dependent strings (optional)
- if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
- require_once(dirname(__FILE__).'/lang/eng.php');
- $pdf->setLanguageArray($l);
- }
- // ---------------------------------------------------------
- // set font
- $pdf->SetFont('helvetica', '', 14);
- // add a page
- $pdf->AddPage();
- $html = file_get_contents($html_page);
- // output the HTML content
- $pdf->writeHTML($html, true, false, true, false, '');
- // reset pointer to the last page
- $pdf->lastPage();
- // ---------------------------------------------------------
- //Close and output PDF document
- $pdf->Output($pdf_name, 'FI');
- }
- function recursiveRemoveDirectory($pathName) {
- foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dirPath, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST) as $path) {
- $path->isDir() && !$path->isLink() ? rmdir($path->getPathname()) : unlink($path->getPathname());
- }
- rmdir($dirPath);
- }
- $doc_name = "commands.docx";
- $result_name = "result.pdf";
- //$FILES['userfile']['name'];
- $tmp_dir = substr(str_shuffle(MD5(microtime())), 0, 10);
- mkdir($tmp_dir);
- $page_name = $tmp_dir."output.html";
- $upload_path = $tmp_dir.$result_name;
- $xmlFile = $tmp_dir."word/document.xml";
- $xslTable = "xsl/docx2html.xsl";
- $saxonProc = new Saxon\SaxonProcessor();
- $proc = $saxonProc->newXsltProcessor();
- Extract($doc_name, $tmp_dir);
- Convertion($proc, $xmlFile, $xslTable);
- unset($proc);
- unset($saxonproc);
- ProducePDF($upload_path,$page_name);
- recursiveRemoveDirectory($tmp_dir);
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement