Source for file ParserPDF.inc
Documentation is available at ParserPDF.inc 
 * This class handles the XML-based CezPDF markup language created to allow  
 * templates for the PDFdefaultConverter  
 * phpDocumentor :: automatic documentation generator  
 * Copyright (c) 2002-2006 Gregory Beaver  
 * This library is free software; you can redistribute it  
 * and/or modify it under the terms of the GNU Lesser General  
 * Public License as published by the Free Software Foundation;  
 * either version 2.1 of the License, or (at your option) any  
 * This library is distributed in the hope that it will be useful,  
 * but WITHOUT ANY WARRANTY; without even the implied warranty of  
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU  
 * Lesser General Public License for more details.  
 * You should have received a copy of the GNU Lesser General Public  
 * License along with this library; if not, write to the Free Software  
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA  
 * @author     Greg Beaver <cellog@php.net>  
 * @copyright  2002-2006 Gregory Beaver  
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL  
 * @version    CVS: $Id: ParserPDF.inc,v 1.5 2007/06/22 14:58:30 ashnazg Exp $  
 * @link       http://www.phpdoc.org  
 * @link       http://pear.php.net/PhpDocumentor  
/** when <text> is found in an ezText input */  
define('PHPDOCUMENTOR_PDF_EVENT_TEXT', 600 );   
/** when <text> is found in an ezText input */  
define('PHPDOCUMENTOR_PDF_STATE_TEXT', 700 );   
/** used for parsing stuff between <text> */  
define('PHPDOCUMENTOR_PDF_EVENT_CONTENT', 601 );   
/** used for parsing stuff between <text> */  
define('PHPDOCUMENTOR_PDF_STATE_CONTENT', 701 );   
/** when <font> is found in an ezText input */  
define('PHPDOCUMENTOR_PDF_EVENT_FONT', 602 );   
/** when <font> is found in an ezText input */  
define('PHPDOCUMENTOR_PDF_STATE_FONT', 702 );   
/** when <newpage/> is found in an ezText input */  
define('PHPDOCUMENTOR_PDF_EVENT_NEWPAGE', 603 );   
/** when <newpage/> is found in an ezText input */  
define('PHPDOCUMENTOR_PDF_STATE_NEWPAGE', 703 );   
/** when <pdffunction> is found in an ezText input */  
define('PHPDOCUMENTOR_PDF_EVENT_PDFFUNCTION', 604 );   
/** when <pdffunction> is found in an ezText input */  
define('PHPDOCUMENTOR_PDF_STATE_PDFFUNCTION', 704 );   
 * @author Greg Beaver <cellog@php.net>  
     * Mapping of event constants to events handler function names  
            PHPDOCUMENTOR_PDF_EVENT_TEXT =>  'handleText', 
            PHPDOCUMENTOR_PDF_EVENT_FONT =>  'handleFont', 
            PHPDOCUMENTOR_PDF_EVENT_NEWPAGE =>  'handleNewPage', 
            PARSER_EVENT_QUOTE =>  'handleQuote', 
            PARSER_EVENT_NOEVENTS =>  'defaultHandler', 
            PHPDOCUMENTOR_PDF_EVENT_CONTENT =>  'handleContent', 
            PHPDOCUMENTOR_PDF_EVENT_PDFFUNCTION =>  'handlePDFfunction', 
     * Sets up the wordparser for this class  
     * Parse text for PDFParser XML tags, and add the text to the PDF file  
     * @param    string text to parse for PDFParser XML tags  
     * @param    string full path to the font directory  
     * @param    boolean determines whether output is saved in a variable or  
     *                    added directly to the output  
     * @staticvar    integer    used for recursion limiting if a handler for an event is not found  
    function parse ($parse_data,$fontdir,&$pdf,$debug=false )  
        // initialize variables so E_ALL error_reporting doesn't complain  
        $this->p_vars ['event_stack'] = new EventStack;   
        $this->p_flags ['reset_quote_data'] = true;   
        $this->p_vars ['options'] = false;   
        $this->p_vars ['font_dir'] =  $fontdir;   
        $this->p_vars ['text_size'] = false;   
        $this->p_vars ['pdf'] =  &$pdf;   
        $this->wp ->setup ($parse_data);   
        $this->wp->setWhitespace (true );   
            $pevent =  $this->p_vars['event_stack']->getEvent ();   
                $this->p_vars['last_pevent'] =  $lpevent;   
            if ($this->p_vars['last_pevent'] !=  $pevent)  
                // its a new event so the word parser needs to be reconfigured   
            $this->p_vars['last_word'] =  $word;   
            $word =  $this->wp->getWord ();   
            if (PHPDOCUMENTOR_DEBUG == true )  
                echo  "----------------\n";  
                echo  "LAST: |" .  $this->p_vars['last_word'] .  "|\n";  
//                echo "INDEX: ".$this->p_vars['curpar']."\n";  
                echo  $this->wp->getPos () .  " WORD: |". $word. "|\n\n";  
            if (isset ($this->eventHandlers[$pevent]))  
                $handle =  $this->eventHandlers[$pevent];   
                $this->$handle($word, $pevent);   
                debug('WARNING: possible error, no ParserPDFParser handler for event number '. $pevent);   
                    die ("FATAL ERROR, recursion limit reached");  
        } while  (!($word === false ));   
            $fp =  fopen("C:/Documents and Settings/Owner/Desktop/pdfsource.txt", "a");   
     * @param integer event constant  
    function defaultHandler ($word, $pevent)  
     * @tutorial ParserPDF.cls#tags.newpage  
    function handleNewPage ($word, $pevent)  
        $this->p_vars['event_stack']->popEvent ();   
        $this->p_vars['pdf']->ezNewPage ($this->_debug);   
     * @tutorial ParserPDF.cls#tags.text  
    function handleText ($word, $pevent)  
            $this->p_flags['textcolor'] = false;   
            if (($a =  $this->p_vars['savecolor']) !=  $this->p_vars['pdf']->getColor ())  
                $this->p_vars['pdf']->setColor ($a['r'],$a['g'],$a['b']);   
        if ($this->p_vars['last_word'] ==  '<text')  
            $this->p_flags['paramval'] = false;   
            $this->p_flags['textcolor'] = false;   
            $this->p_vars['curparam'] = false;   
            $this->p_vars['savecolor'] =  $this->p_vars['pdf']->getColor ();   
            $this->p_vars['options'] = array ();   
            unset ($this->p_vars['quote_data']);  
        if (!$this->p_flags['paramval'])  
//                debug('set paramval '.$this->p_vars['curparam']);  
                $this->p_flags['paramval'] = true;   
            $this->p_vars['curparam'] =  trim($word);   
                if ($this->p_vars['curparam'] ==  'size')  
                    $this->p_vars['text_size'] = (int) $this->p_vars['quote_data'];   
                    $this->p_flags['paramval'] = false;   
                    $this->p_vars['curparam'] = false;   
                        $this->p_vars['curparam'] =  trim($word);   
                    unset ($this->p_vars['quote_data']);  
                } elseif  ($this->p_vars['curparam'] ==  'color')  
                    if ($a =  $this->p_vars['pdf']->validHTMLColor ($this->p_vars['quote_data']))  
                        $this->p_flags['textcolor'] = true;   
                        $this->p_vars['pdf']->setHTMLColor ($a);   
                    if ($this->p_vars['quote_data'] === (string)(int) $this->p_vars['quote_data']) $this->p_vars['quote_data'] = (int) $this->p_vars['quote_data'];   
//                    debug('added '.$this->p_vars['curparam'].' = '.$this->p_vars['quote_data']);  
                    $this->p_vars['options'][$this->p_vars['curparam']] =  $this->p_vars['quote_data'];   
                    $this->p_flags['paramval'] = false;   
                    $this->p_vars['curparam'] = false;   
                        $this->p_vars['curparam'] =  trim($word);   
                    unset ($this->p_vars['quote_data']);  
     * @tutorial ParserPDF.cls#tags.font  
    function handleFont ($word, $pevent)  
        if ($this->p_vars['last_word'] ==  '<font')  
            $this->p_flags['paramval'] = false;   
            $this->p_vars['curparam'] = false;   
            unset ($this->p_vars['quote_data']);  
        if (!$this->p_flags['paramval'])  
                //debug('set paramval '.$this->p_vars['curparam']);  
                $this->p_flags['paramval'] = true;   
            $this->p_vars['curparam'] =  trim($word);   
                if ($this->p_vars['curparam'] ==  'face')  
                    //debug('set face to '.$this->p_vars['font_dir'] . $this->p_vars['quote_data'] . '.afm');  
                    $this->p_vars['pdf']->selectFont ($this->p_vars['font_dir'] .  $this->p_vars['quote_data'] .  '.afm');   
                    $this->p_flags['paramval'] = false;   
                    $this->p_vars['curparam'] = false;   
                    unset ($this->p_vars['quote_data']);  
     * @tutorial ParserPDF.cls#tags.pdffunction  
    function handlePDFFunction ($word, $pevent)  
        if ($this->p_vars['last_word'] ==  '<pdffunction:')  
            $this->p_flags['paramval'] =  $this->p_flags['curparam'] = false;   
            $this->p_flags['returnval'] = false;   
            $this->p_vars['funcname'] =  trim($word);   
//            debug("funcname is $word");  
            $this->p_vars['options'] = array ();   
            unset ($this->p_vars['quote_data']);  
        if (!$this->p_flags['paramval'])  
            { // call function, no parameters  
                $func =  $this->p_vars['funcname'];   
                    if (count($this->p_vars['options']))  
//                        fancy_debug("calling function $func",$this->p_vars['options']);  
//                        debug("calling function $func");  
                        $a =  $this->p_vars['pdf']->$func();   
                    if ($this->p_flags['returnval'])  
//                        debug("setting returnvar ".$this->p_vars['return_varname']);  
                        $this->tempvars[$this->p_vars['return_varname']] =  $a;   
//                debug('set paramval '.$this->p_vars['curparam']);  
                $this->p_flags['paramval'] = true;   
            $this->p_vars['curparam'] =  trim($word);   
            if ($this->p_vars['last_word'] ==  '=')  
            { // check to see if we should use a tempvar from a previous return  
                        $a =  $this->p_vars['pdf']->$a;   
    //                    debug("set option to $word");  
                        $this->p_vars['options'][] =  $a;   
                        $this->p_flags['paramval'] = false;   
                        unset ($this->p_vars['quote_data']);  
                        if (!isset ($this->tempvars[substr(trim($word),1 )]))  
    //                    debug("set option to $word");  
                        $this->p_vars['options'][] =  $a;   
                        $this->p_flags['paramval'] = false;   
                        unset ($this->p_vars['quote_data']);  
                    if ($this->p_vars['quote_data'] === (string)(int) $this->p_vars['quote_data'])  
                        $this->p_vars['quote_data'] = (int) $this->p_vars['quote_data'];   
                    if ($this->p_vars['curparam'] ==  'return')  
//                        debug("param is return");  
                        $this->p_vars['return_varname'] =  $this->p_vars['quote_data'];   
                        $this->p_flags['returnval'] = true;   
//                        fancy_debug("set option to arg",$this->p_vars['quote_data']);  
                        $this->p_vars['options'][] =  $this->p_vars['quote_data'];   
                    $this->p_flags['paramval'] = false;   
                    unset ($this->p_vars['quote_data']);  
            { // call function, with parameters  
                $func =  $this->p_vars['funcname'];   
                    if (count($this->p_vars['options']))  
//                        fancy_debug("calling function $func",$this->p_vars['options']);  
                        if ($func ==  'ezImage') {  
                            // set padding to 5, width to 0, resize to none  
                            $this->p_vars['options'][] = 5;   
                            $this->p_vars['options'][] = 0;   
                            $this->p_vars['options'][] =  'none';   
//                        debug("calling function $func");  
                        $a =  $this->p_vars['pdf']->$func();   
                    if ($this->p_flags['returnval'])  
//                        debug("setting returnvar ".$this->p_vars['return_varname']);  
                        $this->tempvars[$this->p_vars['return_varname']] =  $a;   
     * Adds content to the <text> tag  
    function handleContent ($word, $pevent)  
                if (!isset ($this->p_vars['content'])) return;   
                $this->p_vars['pdf']->_ezText ($this->p_vars['content'],$this->p_vars['text_size'],$this->p_vars['options']);   
                unset ($this->p_vars['content']);  
            $this->wp->backupPos ($word);   
            if (!isset ($this->p_vars['content'])) return;   
            $this->p_vars['pdf']->_ezText ($this->p_vars['content'],$this->p_vars['text_size'],$this->p_vars['options']);   
            unset ($this->p_vars['content']);  
            if (!isset ($this->p_vars['content'])) $this->p_vars['content'] =  '';   
            if (isset ($this->p_vars['quote_data']))  
                $this->p_vars['content'] .=  $this->p_vars['quote_data'];   
                unset ($this->p_vars['quote_data']);  
            $this->p_vars['content'] .=  $word;   
     * setup the parser tokens, and the pushEvent/popEvent arrays  
     * @see $tokens, $pushEvent, $popEvent  
        $this->tokens[STATE_NOEVENTS]            = array ("<text","<font","<newpage />","<newpage/>",'<pdffunction:','"');   
        // For each event word to event mapings  
##########################  
##########################  
##########################  
##########################  
##########################  
     * Return the name of the parser event  
        if (isset ($lookup[$value]))  
 
 
        
		    
 
		    Documentation generated on Mon, 11 Mar 2019 15:08:18 -0400 by  phpDocumentor 1.4.4. PEAR Logo Copyright ©  PHP Group 2004.
	        
       |