コード例 #1
0
ファイル: RtfParser.cs プロジェクト: nicecai/iTextSharp-4.1.6
        /**
        * Initialize the parser object values. 
        * 
        * @param type Type of conversion or import
        * @param rtfDoc The <code>RtfDocument</code>
        * @param readerIn The input stream
        * @param doc The iText <code>Document</code>
        */
        private void Init(int type, RtfDocument rtfDoc, Stream readerIn, Document doc, IElement elem) {

            Init_stats();
            // initialize reader to a PushbackReader
            this.pbReader = Init_Reader(readerIn);
            
            this.conversionType = type;
            this.rtfDoc = rtfDoc;
            this.document = doc;
            this.elem = elem;
            this.currentState = new RtfParserState();
            this.stackState = new Stack();
            this.SetParserState(PARSER_STARTSTOP);
            this.importMgr = new RtfImportMgr(this.rtfDoc, this.document);

            // get destination Mgr
            this.destinationMgr = RtfDestinationMgr.GetInstance(this);
            // set the parser
            RtfDestinationMgr.SetParser(this);


            // DEBUG INFO for timing and memory usage of RtfCtrlWordMgr object
            // create multiple new RtfCtrlWordMgr objects to check timing and memory usage
    //      System.Gc();
    //      long endTime = 0;
    //      Date endDate = null;        
    //      long endFree = 0;
    //      DecimalFormat df = new DecimalFormat("#,##0");
    //      Date startDate = new Date();
    //      long startTime = System.CurrentTimeMillis();
    //      long startFree = Runtime.GetRuntime().FreeMemory();
    //      System.out.Println("1:");
            
            this.rtfKeywordMgr = new RtfCtrlWordMgr(this, this.pbReader);/////////DO NOT COMMENT OUT THIS LINE ///////////
            
            foreach (object listener in listeners) {
                if (listener is IRtfCtrlWordListener) {
                    this.rtfKeywordMgr.AddRtfCtrlWordListener((IRtfCtrlWordListener)listener);    
                }
            }
    //      endFree = Runtime.GetRuntime().FreeMemory();
    //      endTime = System.CurrentTimeMillis();
    //      endDate = new Date();
    //      System.out.Println("RtfCtrlWordMgr start date: " + startDate.ToLocaleString());
    //      System.out.Println("RtfCtrlWordMgr end date  : " + endDate.ToLocaleString());
    //      System.out.Println("  Elapsed time    : " + Long.ToString(endTime - startTime) + " milliseconds.");
    //      System.out.Println("Begin Constructor RtfCtrlWordMgr , free mem is " + df.Format(startFree / 1024) + "k");
    //      System.out.Println("End Constructor RtfCtrlWordMgr , free mem is " + df.Format(endFree / 1024) + "k");
    //      System.out.Println("RtfCtrlWordMgr used approximately " + df.Format((startFree - endFree) / 1024) + "k");
    //      
    //      System.Gc();
    //      System.out.Println("2:");
    //      startDate = new Date();
    //      startTime = System.CurrentTimeMillis();
    //      startFree = Runtime.GetRuntime().FreeMemory();
    //      RtfCtrlWordMgr rtfKeywordMgr2 = new RtfCtrlWordMgr(this, this.pbReader);        
    //      endFree = Runtime.GetRuntime().FreeMemory();
    //      endTime = System.CurrentTimeMillis();
    //      endDate = new Date();
    //      System.out.Println("RtfCtrlWordMgr start date: " + startDate.ToLocaleString());
    //      System.out.Println("RtfCtrlWordMgr end date  : " + endDate.ToLocaleString());
    //      System.out.Println("  Elapsed time    : " + Long.ToString(endTime - startTime) + " milliseconds.");
    //      System.out.Println("Begin Constructor RtfCtrlWordMgr , free mem is " + df.Format(startFree / 1024) + "k");
    //      System.out.Println("End Constructor RtfCtrlWordMgr , free mem is " + df.Format(endFree / 1024) + "k");
    //      System.out.Println("RtfCtrlWordMgr used approximately " + df.Format((startFree - endFree) / 1024) + "k");
    //      
    //      System.Gc();
    //      System.out.Println("3:");
    //      startDate = new Date();
    //      startTime = System.CurrentTimeMillis();
    //      startFree = Runtime.GetRuntime().FreeMemory();
    //      RtfCtrlWordMgr rtfKeywordMgr3 = new RtfCtrlWordMgr(this, this.pbReader);    
    //      endFree = Runtime.GetRuntime().FreeMemory();
    //      endTime = System.CurrentTimeMillis();
    //      endDate = new Date();
    //      System.out.Println("RtfCtrlWordMgr start date: " + startDate.ToLocaleString());
    //      System.out.Println("RtfCtrlWordMgr end date  : " + endDate.ToLocaleString());
    //      System.out.Println("  Elapsed time    : " + Long.ToString(endTime - startTime) + " milliseconds.");
    //      System.out.Println("Begin Constructor RtfCtrlWordMgr , free mem is " + df.Format(startFree / 1024) + "k");
    //      System.out.Println("End Constructor RtfCtrlWordMgr , free mem is " + df.Format(endFree / 1024) + "k");
    //      System.out.Println("RtfCtrlWordMgr used approximately " + df.Format((startFree - endFree) / 1024) + "k");
    //
    //      System.Gc();
    //      System.out.Println("4:");
    //      startDate = new Date();
    //      startTime = System.CurrentTimeMillis();
    //      startFree = Runtime.GetRuntime().FreeMemory();
    //      RtfCtrlWordMgr rtfKeywordMgr4 = new RtfCtrlWordMgr(this, this.pbReader);    
    //      endFree = Runtime.GetRuntime().FreeMemory();
    //      endTime = System.CurrentTimeMillis();
    //      endDate = new Date();
    //      System.out.Println("RtfCtrlWordMgr start date: " + startDate.ToLocaleString());
    //      System.out.Println("RtfCtrlWordMgr end date  : " + endDate.ToLocaleString());
    //      System.out.Println("  Elapsed time    : " + Long.ToString(endTime - startTime) + " milliseconds.");
    //      System.out.Println("Begin Constructor RtfCtrlWordMgr , free mem is " + df.Format(startFree / 1024) + "k");
    //      System.out.Println("End Constructor RtfCtrlWordMgr , free mem is " + df.Format(endFree / 1024) + "k");
    //      System.out.Println("RtfCtrlWordMgr used approximately " + df.Format((startFree - endFree) / 1024) + "k");
    //
    //      System.Gc();
    //      System.out.Println("5:");
    //      startDate = new Date();
    //      startTime = System.CurrentTimeMillis();
    //      startFree = Runtime.GetRuntime().FreeMemory();
    //      RtfCtrlWordMgr rtfKeywordMgr5 = new RtfCtrlWordMgr(this, this.pbReader);    
    //      endFree = Runtime.GetRuntime().FreeMemory();
    //      endTime = System.CurrentTimeMillis();
    //      endDate = new Date();
    //      System.out.Println("RtfCtrlWordMgr start date: " + startDate.ToLocaleString());
    //      System.out.Println("RtfCtrlWordMgr end date  : " + endDate.ToLocaleString());
    //      System.out.Println("  Elapsed time    : " + Long.ToString(endTime - startTime) + " milliseconds.");
    //      System.out.Println("Begin Constructor RtfCtrlWordMgr , free mem is " + df.Format(startFree / 1024) + "k");
    //      System.out.Println("End Constructor RtfCtrlWordMgr , free mem is " + df.Format(endFree / 1024) + "k");
    //      System.out.Println("RtfCtrlWordMgr used approximately " + df.Format((startFree - endFree) / 1024) + "k");
    //      System.Gc();
    //      System.out.Println("At ed:");
    //      startDate = new Date();
    //      startTime = System.CurrentTimeMillis();
    //      startFree = Runtime.GetRuntime().FreeMemory();
    //      //RtfCtrlWordMgr rtfKeywordMgr6 = new RtfCtrlWordMgr(this, this.pbReader);  
    //      endFree = Runtime.GetRuntime().FreeMemory();
    //      endTime = System.CurrentTimeMillis();
    //      endDate = new Date();
    //      System.out.Println("RtfCtrlWordMgr start date: " + startDate.ToLocaleString());
    //      System.out.Println("RtfCtrlWordMgr end date  : " + endDate.ToLocaleString());
    //      System.out.Println("  Elapsed time    : " + Long.ToString(endTime - startTime) + " milliseconds.");
    //      System.out.Println("Begin Constructor RtfCtrlWordMgr , free mem is " + df.Format(startFree / 1024) + "k");
    //      System.out.Println("End Constructor RtfCtrlWordMgr , free mem is " + df.Format(endFree / 1024) + "k");
    //      System.out.Println("RtfCtrlWordMgr used approximately " + df.Format((startFree - endFree) / 1024) + "k");
        }
コード例 #2
0
ファイル: RtfCtrlWordMgr.cs プロジェクト: bmictech/iTextSharp
        //  // TIMING DEBUG INFO
        //  private long endTime = 0;
        //  private Date endDate = null;
        //  private long endFree = 0;
        //  private DecimalFormat df = new DecimalFormat("#,##0");
        //  private Date startDate = new Date();
        //  private long startTime = System.CurrentTimeMillis();
        //  private long startFree = Runtime.GetRuntime().FreeMemory();
        /**
        * Constructor
        * @param rtfParser The parser object this manager works with.
        * @param reader the PushbackReader from the tokeniser.
        */
        public RtfCtrlWordMgr(RtfParser rtfParser, PushbackStream reader)
        {
            this.rtfParser = rtfParser; // set the parser
            this.reader = reader;   // set the reader value
            ctrlWordMap = new RtfCtrlWordMap(rtfParser);

            //      // TIMING DEBUG INFO
            //      endFree = Runtime.GetRuntime().FreeMemory();
            //      endTime = System.CurrentTimeMillis();
            //      endDate = new Date();
            //      Console.Out.WriteLine("RtfCtrlWordMgr start date: " + startDate.ToLocaleString());
            //      Console.Out.WriteLine("RtfCtrlWordMgr end date  : " + endDate.ToLocaleString());
            //      Console.Out.WriteLine("  Elapsed time    : " + Long.ToString(endTime - startTime) + " milliseconds.");
            //      Console.Out.WriteLine("Begin Constructor RtfCtrlWordMgr , free mem is " + df.Format(startFree / 1024) + "k");
            //      Console.Out.WriteLine("End Constructor RtfCtrlWordMgr , free mem is " + df.Format(endFree / 1024) + "k");
            //        Console.Out.WriteLine("RtfCtrlWordMgr used approximately " + df.Format((startFree - endFree) / 1024) + "k");
        }
コード例 #3
0
ファイル: RtfParser.cs プロジェクト: nicecai/iTextSharp-4.1.6
        /**
        * Parses a keyword and it's parameter if one exists
        * @param reader
        *       This is a pushback reader for file input.
        * @return
        *       Returns an error code or errOK if no error.
        * @throws IOException
        *       Catch any file read problem.
        */
        private int ParseCtrlWord(PushbackStream reader) {
            int nextChar = 0;
            int result = errOK;
            
            if((nextChar = reader.ReadByte()) == -1) {
                    return errEndOfFile;
            }
            this.byteCount++;

            StringBuilder parsedCtrlWord = new StringBuilder();
            StringBuilder parsedParam= new StringBuilder();
            RtfCtrlWordData ctrlWordParam = new RtfCtrlWordData();
            
            if (!Char.IsLetterOrDigit((char)nextChar)) {
                parsedCtrlWord.Append((char)nextChar);
                ctrlWordParam.ctrlWord = parsedCtrlWord.ToString();
                result =  this.HandleCtrlWord(ctrlWordParam);
                lastCtrlWordParam = ctrlWordParam;
                return result;
            }
            
    //      for ( ; Character.IsLetter(nextChar[0]); reader.Read(nextChar) ) {
    //          parsedCtrlWord.Append(nextChar[0]);
    //      }
            do {
                parsedCtrlWord.Append((char)nextChar);
                //TODO: catch EOF
                nextChar = reader.ReadByte();
                this.byteCount++;
            } while  (Char.IsLetter((char)nextChar));
            
            ctrlWordParam.ctrlWord = parsedCtrlWord.ToString();

            if ((char)nextChar == '-') {
                ctrlWordParam.isNeg = true;
                if((nextChar = reader.ReadByte()) == -1) {
                        return errEndOfFile;
                }
                this.byteCount++;
            }
            
            if (Char.IsDigit((char)nextChar)) {
                ctrlWordParam.hasParam = true;
    //          for ( ; Character.IsDigit(nextChar[0]); reader.Read(nextChar) ) {
    //              parsedParam.Append(nextChar[0]);
    //          }
                do {
                    parsedParam.Append((char)nextChar);
                    //TODO: catch EOF
                    nextChar = reader.ReadByte();
                    this.byteCount++;
                } while  (Char.IsDigit((char)nextChar));
                
                ctrlWordParam.param = parsedParam.ToString();
            }
            
            // push this character back into the stream
            if ((char)nextChar != ' ') { // || this.IsImport() ) {
                reader.Unread(nextChar);
            }
            
            if (debugParser) {
        //      // debug: insrsid6254399
        //      if (ctrlWordParam.ctrlWord.Equals("proptype") && ctrlWordParam.param.Equals("30")) {
        //          System.out.Print("Debug value found\n");
        //      }
        //      if (ctrlWordParam.ctrlWord.Equals("panose") ) {
        //          System.out.Print("Debug value found\n");
        //      }
            }
            
            result = this.HandleCtrlWord(ctrlWordParam);
            lastCtrlWordParam = ctrlWordParam;
            return result;

        }