. * * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco, * California 94120-7775, or email info@knowledgetree.com. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * KnowledgeTree" logo and retain the original copyright notice. If the display of the * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original * copyright notice. * Contributor( s): ______________________________________ */ /** * Class that creates printer friendly version of any referer page * Prints any content, and has ability to attach css styles to the printing context **/ class printer { /** * This is the context of the document to be printed * * @var string $_context */ var $_context = 0; /** * Prep string for line endings * * @param string $str * @return string */ private function _prepareString($str) { $str = str_replace("\r", '', $str); $str = str_replace("\n", '\n', $str); $str = str_replace("\047", "\\'", $str); $str = str_replace('"', '\"', $str); return $str; } /** * Referer type function call to get the body * of a document to be printed * * @param file $fname * @return string */ function readBody($fname) { $html = ''; ob_start(); if (@readfile($fname))$html = ob_get_contents(); ob_end_clean(); if (preg_match('#]*>(.+?)#is', $html, $matches)) { $html = $matches[1]; } return $html; } /** * Main context for printing. Consits of the Css for layout * and javascript for the print window * * @param string $printHtml * @param string $stylesheet * @return string context */ function addPrintContext($printHtml, $stylesheet = array()) { $this->_context += 1; $printHtml = $this->_prepareString($printHtml); echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; return $this->_context; } /** * Add show print link on page * * @param string $context * @param string $linkText * @param string $attributes */ function showPrintLink($context, $linkText, $attributes = '') { $hostPath = KTUtil::kt_url() . '/resources/graphics/printer.gif'; echo ' '; } /** * Add show print button * * @param string $context * @param string $buttonText * @param string $attributes */ function showPrintButton($context, $buttonText, $attributes = '') { echo ''; } } ?>