<?php include_once "header.php"; require_once(TADTOOLS_PATH.'/tcpdf/tcpdf.php'); $pdf = new TCPDF("P", "mm", "A4"); $pdf->setPrintHeader(false); //不要頁首 $pdf->setPrintFooter(false); //不要頁尾 $pdf->SetAutoPageBreak(true, PDF_MARGIN_BOTTOM); //設定自動分頁 $pdf->setFontSubsetting(true); //產生字型子集(有用到的字才放到文件中) $pdf->SetMargins(15, 15); //設定頁面邊界, $pdf->AddPage(); //新增頁面,一定要有,否則內容出不來 include_once $GLOBALS['xoops']->path('/modules/system/include/functions.php'); $sn = system_CleanVars($_REQUEST, 'sn', 0, 'int'); $myts = MyTextSanitizer::getInstance(); $tbl = $xoopsDB->prefix('snews'); $sql = "SELECT * FROM `$tbl` WHERE `sn` = '{$sn}'"; $result = $xoopsDB->query($sql) or web_error($sql); $snews = $xoopsDB->fetchArray($result); $content = $myts->displayTarea($snews['content'], 1, 0, 0, 0, 0); $content = strip_word_html($content); $html = new Tidy(); $tidy_options = array('clean' => true, 'indent' => true); $html->parseString($content, $tidy_options, 'utf8'); $html->cleanRepair(); // die($html); $title = $myts->htmlSpecialChars($snews['title']); $username = $myts->htmlSpecialChars($snews['username']); //$pdf->Text( $x, $y, $txt, $fstroke = false, $fclip = false, $ffill = true, $border = 0, $ln = 0, $align = '', $fill = false, $link = '', $stretch = 0, $ignore_min_height = false, $calign = 'T', $valign = 'M', $rtloff = false ); $pdf->SetFont('droidsansfallback', '', 24, '', true); //設定字型 $pdf->Text($pdf->GetX(), $pdf->GetY(), $title, false, false, true, 0, 1); $pdf->SetFont('msungstdlight', '', 12, '', true); //設定字型 $pdf->Text($pdf->GetX(), $pdf->GetY(), $username, false, false, true, 0, 1); $pdf->writeHTML($html, 1, 0); //PDF內容設定 $pdf->Output('snews.pdf', 'I'); function strip_word_html($text, $allowed_tags = '<a><b><blockquote><br><dd><del><div><dl><dt><em><h1><h2><h3><h4><h5><h6><hr><i><img><li><ol><p><pre><small><strong><sub><sup><table><tcpdf><td><th><thead><tr><tt><u><ul>') { mb_regex_encoding('UTF-8'); //replace MS special characters first $search = array('/‘/u', '/’/u', '/“/u', '/”/u', '/—/u'); $replace = array('\'', '\'', '"', '"', '-'); $text = preg_replace($search, $replace, $text); if (mb_stripos($text, '/*') !== false) { $text = mb_eregi_replace('#/\*.*?\*/#s', '', $text, 'm'); } $text = preg_replace(array('/<([0-9]+)/'), array('< $1'), $text); $text = strip_tags($text, $allowed_tags); $text = preg_replace(array('/^\s\s+/', '/\s\s+$/', '/\s\s+/u'), array('', '', ' '), $text); $search = array('#<(strong|b)[^>]*>(.*?)</(strong|b)>#isu', '#<(em|i)[^>]*>(.*?)</(em|i)>#isu', '#<u[^>]*>(.*?)</u>#isu'); $replace = array('<b>$2</b>', '<i>$2</i>', '<u>$1</u>'); $text = preg_replace($search, $replace, $text); $num_matches = preg_match_all("/\<!--/u", $text, $matches); if ($num_matches) { $text = preg_replace('/\<!--(.)*--\>/isu', '', $text); } $text = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $text); return $text; }