diff --git a/lib/util/printer.inc.php b/lib/util/printer.inc.php new file mode 100644 index 0000000..9f3756a --- /dev/null +++ b/lib/util/printer.inc.php @@ -0,0 +1,155 @@ +. + * + * 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 ''; + } + +} +?> \ No newline at end of file