/**
         * Put all data from given day into given table
         */
        public static void collectDataforDay(DateTime dateTime, SQLiteConnection m_dbConnection)
        {
            string zeroMonth = dateTime.Month < 10 ? "0" : "";
              string zeroDay = dateTime.Day < 10 ? "0" : "";
              string date = zeroMonth + dateTime.Month + "/" + zeroDay + dateTime.Day + "/" + dateTime.Year;

              PdfReader reader;
              try
              {
            reader = new PdfReader("http://www.equibase.com/premium/eqbPDFChartPlus.cfm?RACE=A&BorP=P&TID=SAR&CTRY=USA&DT=" + date + "&DAY=D&STYLE=EQB");
              }
              catch (Exception e)
              {
            Console.WriteLine("CAPTCHA TIME");
            Console.ReadKey();
            Console.ReadKey();

            reader = new PdfReader("http://www.equibase.com/premium/eqbPDFChartPlus.cfm?RACE=A&BorP=P&TID=SAR&CTRY=USA&DT=" + date + "&DAY=D&STYLE=EQB");
              }
              StringBuilder builder = new StringBuilder();

              for (int x = 1; x <= reader.NumberOfPages; x++)
              {
            PdfDictionary page = reader.GetPageN(x);
            IRenderListener listener = new SBTextRenderer(builder);
            PdfContentStreamProcessor processor = new PdfContentStreamProcessor(listener);
            PdfDictionary pageDic = reader.GetPageN(x);
            PdfDictionary resourcesDic = pageDic.GetAsDict(PdfName.RESOURCES);
            processor.ProcessContent(ContentByteUtils.GetContentBytesForPage(reader, x), resourcesDic);
              }

              if (pages.Count != 0)
              {

            DataHandler handler = new DataHandler(dateTime, pages, m_dbConnection);
            Thread thread = new Thread(new ThreadStart(handler.extractPdfData));

            thread.Start();
            thread.Join();
            reader.Dispose();
            pages.Clear();
              }
              else
              {
            // If there were no races on this particular day, simply skip it! :D
            Console.WriteLine("Invalid Date: " + date);
              }
        }
 public static void PopulateOperators(PdfContentStreamProcessor contentProcessor,
                              PdfCleanUpRenderListener pdfCleanUpRenderListener) {
     foreach (String oper in contentProcessor.RegisteredOperatorStrings) {
         PdfCleanUpContentOperator contentOperator = new PdfCleanUpContentOperator(pdfCleanUpRenderListener);
         contentOperator.originalContentOperator = contentProcessor.RegisterContentOperator(oper, contentOperator);
     }
 }
 public void extractSnippets(String src, String dest)
 {
     TextWriter output = new StreamWriter(new FileStream(dest, FileMode.Create));
     PdfReader reader = new PdfReader(src);
     IRenderListener listener = new MyTextRenderListener(output);
     PdfContentStreamProcessor processor =
         new PdfContentStreamProcessor(listener);
     PdfDictionary pageDic = reader.GetPageN(1);
     PdfDictionary resourcesDic = pageDic.GetAsDict(PdfName.RESOURCES);
     processor.ProcessContent(ContentByteUtils.GetContentBytesForPage(reader, 1), resourcesDic);
     output.Flush();
     output.Close();
     reader.Close();
 }
 virtual public void WeirdHyphensTest() {
     PdfReader reader = TestResourceUtils.GetResourceAsPdfReader(TEST_RESOURCES_PATH, "WeirdHyphens.pdf");
     List<String> textChunks = new List<String>();
     IRenderListener listener = new MyTextRenderListener(textChunks);
     PdfContentStreamProcessor processor = new PdfContentStreamProcessor(listener);
     PdfDictionary pageDic = reader.GetPageN(1);
     PdfDictionary resourcesDic = pageDic.GetAsDict(PdfName.RESOURCES);
     processor.ProcessContent(ContentByteUtils.GetContentBytesForPage(reader, 1), resourcesDic);
     /**
      * This assertion makes sure that encoding has been read properly from FontDescriptor.
      * If not the vallue will be "\u0000 14".
      */
     Assert.AreEqual("\u0096 14", textChunks[18]);
     reader.Close();
 }
        private void ProcessBytes(
            string resourceName,
            int pageNumber)
        {
            PdfReader pdfReader = TestResourceUtils.GetResourceAsPdfReader(TEST_RESOURCES_PATH, resourceName);

            PdfDictionary pageDictionary = pdfReader.GetPageN(pageNumber);

            PdfDictionary resourceDictionary = pageDictionary.GetAsDict(PdfName.RESOURCES);

            PdfObject contentObject = pageDictionary.Get(PdfName.CONTENTS);
            byte[] contentBytes = ReadContentBytes(contentObject);
            PdfContentStreamProcessor processor = new PdfContentStreamProcessor(_renderListener);
            processor.ProcessContent(contentBytes, resourceDictionary);

        }
        public void TestType3FontWidth() {
            String inFile = "type3font_text.pdf";
            LineSegment origLineSegment = new LineSegment(new Vector(20.3246f, 769.4974f, 1.0f), new Vector(151.22923f, 769.4974f, 1.0f));

            PdfReader reader = TestResourceUtils.GetResourceAsPdfReader(TEST_RESOURCES_PATH, inFile);
            TextPositionRenderListener renderListener = new TextPositionRenderListener();
            PdfContentStreamProcessor processor = new PdfContentStreamProcessor(renderListener);

            PdfDictionary pageDic = reader.GetPageN(FIRST_PAGE);
            PdfDictionary resourcesDic = pageDic.GetAsDict(PdfName.RESOURCES);
            processor.ProcessContent(ContentByteUtils.GetContentBytesForPage(reader, FIRST_PAGE), resourcesDic);


            Assert.AreEqual(renderListener.LineSegments[FIRST_ELEMENT_INDEX].GetStartPoint()[FIRST_ELEMENT_INDEX],
                origLineSegment.GetStartPoint()[FIRST_ELEMENT_INDEX], 1/2f);

            Assert.AreEqual(renderListener.LineSegments[FIRST_ELEMENT_INDEX].GetEndPoint()[FIRST_ELEMENT_INDEX],
                origLineSegment.GetEndPoint()[FIRST_ELEMENT_INDEX], 1/2f);

        }
            public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
            {
                PdfNumber aw  = (PdfNumber)operands[0];
                PdfNumber ac  = (PdfNumber)operands[1];
                PdfString str = (PdfString)operands[2];

                List <PdfObject> twOperands = new List <PdfObject>(1);

                twOperands.Insert(0, aw);
                setTextWordSpacing.Invoke(processor, null, twOperands);

                List <PdfObject> tcOperands = new List <PdfObject>(1);

                tcOperands.Insert(0, ac);
                setTextCharacterSpacing.Invoke(processor, null, tcOperands);

                List <PdfObject> tickOperands = new List <PdfObject>(1);

                tickOperands.Insert(0, str);
                moveNextLineAndShowText.Invoke(processor, null, tickOperands);
            }
            public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
            {
                PdfName fontResourceName = (PdfName)operands[0];
                float   size             = ((PdfNumber)operands[1]).FloatValue;

                PdfDictionary         fontsDictionary = processor.resources.GetAsDict(PdfName.FONT);
                CMapAwareDocumentFont font;
                PdfObject             fontObject = fontsDictionary.Get(fontResourceName);

                if (fontObject is PdfDictionary)
                {
                    font = processor.GetFont((PdfDictionary)fontObject);
                }
                else
                {
                    font = processor.GetFont((PRIndirectReference)fontObject);
                }

                processor.Gs().font     = font;
                processor.Gs().fontSize = size;
            }
Ejemplo n.º 9
0
 /**
  * Searches for a tag in a page.
  *
  * @param tag
  *            the name of the tag
  * @param obj
  *            an identifier to find the marked content
  * @param page
  *            a page dictionary
  * @throws IOException
  */
 public virtual void ParseTag(String tag, PdfObject obj, PdfDictionary page)
 {
     // if the identifier is a number, we can extract the content right away
     if (obj is PdfNumber)
     {
         PdfNumber                  mcid      = (PdfNumber)obj;
         RenderFilter               filter    = new MarkedContentRenderFilter(mcid.IntValue);
         ITextExtractionStrategy    strategy  = new SimpleTextExtractionStrategy();
         FilteredTextRenderListener listener  = new FilteredTextRenderListener(strategy, new RenderFilter[] { filter });
         PdfContentStreamProcessor  processor = new PdfContentStreamProcessor(
             listener);
         processor.ProcessContent(PdfReader.GetPageContent(page), page
                                  .GetAsDict(PdfName.RESOURCES));
         outp.Write(XMLUtil.EscapeXML(listener.GetResultantText(), true));
     }
     // if the identifier is an array, we call the parseTag method
     // recursively
     else if (obj is PdfArray)
     {
         PdfArray arr = (PdfArray)obj;
         int      n   = arr.Size;
         for (int i = 0; i < n; i++)
         {
             ParseTag(tag, arr[i], page);
             if (i < n - 1)
             {
                 outp.WriteLine();
             }
         }
     }
     // if the identifier is a dictionary, we get the resources from the
     // dictionary
     else if (obj is PdfDictionary)
     {
         PdfDictionary mcr = (PdfDictionary)obj;
         ParseTag(tag, mcr.GetDirectObject(PdfName.MCID), mcr
                  .GetAsDict(PdfName.PG));
     }
 }
Ejemplo n.º 10
0
 virtual public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
 {
     processor.Gs().colorSpaceStroke = (PdfName)operands[0];
 }
Ejemplo n.º 11
0
            public void HandleXObject(PdfContentStreamProcessor processor, PdfStream xobjectStream, PdfIndirectReference refi)
            {
                ImageRenderInfo renderInfo = ImageRenderInfo.CreateForXObject(processor.Gs().ctm, refi);

                processor.renderListener.RenderImage(renderInfo);
            }
Ejemplo n.º 12
0
 public void HandleXObject(PdfContentStreamProcessor processor, PdfStream xobjectStream, PdfIndirectReference refi) {
     PdfDictionary colorSpaceDic = processor.resources.GetAsDict(PdfName.COLORSPACE);
     ImageRenderInfo renderInfo = ImageRenderInfo.CreateForXObject(processor.Gs().ctm, refi, colorSpaceDic);
     processor.renderListener.RenderImage(renderInfo);
 }
Ejemplo n.º 13
0
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
     PdfName xobjectName = (PdfName)operands[0];
     processor.DisplayXObject(xobjectName);
 }
Ejemplo n.º 14
0
 public void Invoke(PdfContentStreamProcessor processor,
         PdfLiteral oper, List<PdfObject> operands)
         {
     
     PdfObject properties = operands[1];
     
     processor.BeginMarkedContent((PdfName)operands[0], GetPropertiesDictionary(properties, processor.resources));
 }
Ejemplo n.º 15
0
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
     processor.textMatrix = null;
     processor.textLineMatrix = null;
     processor.EndText();
 }
 public void HandleXObject(PdfContentStreamProcessor processor, PdfStream xobjectStream, PdfIndirectReference refi)
 {
     // ignore XObject subtype
 }
Ejemplo n.º 17
0
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
     PdfNumber render = (PdfNumber)operands[0];
     processor.Gs().renderMode = render.IntValue;
 }
Ejemplo n.º 18
0
            public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
                PdfName fontResourceName = (PdfName)operands[0];
                float size = ((PdfNumber)operands[1]).FloatValue;

                PdfDictionary fontsDictionary = processor.resources.GetAsDict(PdfName.FONT);
                CMapAwareDocumentFont font;
                PdfObject fontObject = fontsDictionary.Get(fontResourceName);
                if (fontObject is PdfDictionary)
                    font = processor.GetFont((PdfDictionary)fontObject);
                else
                    font = processor.GetFont((PRIndirectReference)fontObject);

                processor.Gs().font = font;
                processor.Gs().fontSize = size;

            }
Ejemplo n.º 19
0
            public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
                float tx = ((PdfNumber)operands[0]).FloatValue;
                float ty = ((PdfNumber)operands[1]).FloatValue;

                Matrix translationMatrix = new Matrix(tx, ty);
                processor.textMatrix =  translationMatrix.Multiply(processor.textLineMatrix);
                processor.textLineMatrix = processor.textMatrix;
            }
Ejemplo n.º 20
0
            virtual public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
            {
                PdfNumber rise = (PdfNumber)operands[0];

                processor.Gs().rise = rise.FloatValue;
            }
Ejemplo n.º 21
0
            virtual public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
            {
                PdfNumber charSpace = (PdfNumber)operands[0];

                processor.Gs().characterSpacing = charSpace.FloatValue;
            }
Ejemplo n.º 22
0
 virtual public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
 {
     processor.Gs().strokeColor = GetColor(processor.Gs().colorSpaceStroke, operands);
 }
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
 {
     processor.textMatrix     = null;
     processor.textLineMatrix = null;
     processor.EndText();
 }
 public void Invoke(PdfContentStreamProcessor processor,
                    PdfLiteral oper, List <PdfObject> operands)
 {
     processor.EndMarkedContent();
 }
Ejemplo n.º 25
0
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
     PdfNumber leading = (PdfNumber)operands[0];
     processor.Gs().leading = leading.FloatValue;
 }
Ejemplo n.º 26
0
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
     PdfNumber scale = (PdfNumber)operands[0];
     processor.Gs().horizontalScaling = scale.FloatValue/100f;
 }
Ejemplo n.º 27
0
        public virtual void SpaceTrimColumnTextTest() {
            Document doc = new Document(PageSize.A4, 50, 30, 50, 30);
            PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(OUTSPTRIMCT, FileMode.Create));
            doc.Open();

            Phrase under = new Phrase();
            under.Font = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.UNDERLINE);
            under.Add(new Chunk(" 1                                                      1                                                                                                                             9      "));

            Paragraph underlineTest = new Paragraph(under);
            underlineTest.KeepTogether = true;
            doc.Add(underlineTest);

            doc.Close();
            writer.Close();

            PdfReader reader = new PdfReader(OUTSPTRIMCT);
            MyTextRenderListener listener = new MyTextRenderListener();
            PdfContentStreamProcessor processor = new PdfContentStreamProcessor(listener);
            PdfDictionary pageDic = reader.GetPageN(1);
            PdfDictionary resourcesDic = pageDic.GetAsDict(PdfName.RESOURCES);
            processor.ProcessContent(ContentByteUtils.GetContentBytesForPage(reader, 1), resourcesDic);
            Assert.IsTrue(listener.GetText().Length == 60, "Unexpected text length");
        }
Ejemplo n.º 28
0
 public void Invoke(PdfContentStreamProcessor processor,
         PdfLiteral oper, List<PdfObject> operands)
         {
     processor.BeginMarkedContent((PdfName)operands[0], new PdfDictionary());
 }
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
 {
     textMoveNextLine.Invoke(processor, null, new List <PdfObject>(0));
     showText.Invoke(processor, null, operands);
 }
Ejemplo n.º 30
0
 public void Invoke(PdfContentStreamProcessor processor,
         PdfLiteral oper, List<PdfObject> operands)
         {
     processor.EndMarkedContent();
 }
            public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
            {
                PdfNumber render = (PdfNumber)operands[0];

                processor.Gs().renderMode = render.IntValue;
            }
Ejemplo n.º 32
0
            public void HandleXObject(PdfContentStreamProcessor processor, PdfStream stream, PdfIndirectReference refi) {
                
                PdfDictionary resources = stream.GetAsDict(PdfName.RESOURCES);

                // we read the content bytes up here so if it fails we don't leave the graphics state stack corrupted
                // this is probably not necessary (if we fail on this, probably the entire content stream processing
                // operation should be rejected
                byte[] contentBytes;
                contentBytes = ContentByteUtils.GetContentBytesFromContentObject(stream);
                PdfArray matrix = stream.GetAsArray(PdfName.MATRIX);

                new PushGraphicsState().Invoke(processor, null, null);

                if (matrix != null){
                    float a = matrix.GetAsNumber(0).FloatValue;
                    float b = matrix.GetAsNumber(1).FloatValue;
                    float c = matrix.GetAsNumber(2).FloatValue;
                    float d = matrix.GetAsNumber(3).FloatValue;
                    float e = matrix.GetAsNumber(4).FloatValue;
                    float f = matrix.GetAsNumber(5).FloatValue;
                    Matrix formMatrix = new Matrix(a, b, c, d, e, f);

                    processor.Gs().ctm = formMatrix.Multiply(processor.Gs().ctm);
                }

                processor.ProcessContent(contentBytes, resources);

                new PopGraphicsState().Invoke(processor, null, null);
                
            }
            public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
            {
                PdfNumber scale = (PdfNumber)operands[0];

                processor.Gs().horizontalScaling = scale.FloatValue / 100f;
            }
Ejemplo n.º 34
0
 public void HandleXObject(PdfContentStreamProcessor processor, PdfStream xobjectStream, PdfIndirectReference refi) {
     // ignore XObject subtype
 }
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
 {
     processor.gsStack.Pop();
 }
Ejemplo n.º 36
0
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
     PdfNumber wordSpace = (PdfNumber)operands[0];
     processor.Gs().wordSpacing = wordSpace.FloatValue;
 }
Ejemplo n.º 37
0
 virtual public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
 {
     processor.Gs().fillColor = GetColor(4, operands);
 }
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
 {
     // ignore the oper
 }
Ejemplo n.º 39
0
            public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {

                PdfName dictionaryName = (PdfName)operands[0];
                PdfDictionary extGState = processor.resources.GetAsDict(PdfName.EXTGSTATE);
                if (extGState == null)
                    throw new ArgumentException(MessageLocalization.GetComposedMessage("resources.do.not.contain.extgstate.entry.unable.to.process.oper.1", oper));
                PdfDictionary gsDic = extGState.GetAsDict(dictionaryName);
                if (gsDic == null)
                    throw new ArgumentException(MessageLocalization.GetComposedMessage("1.is.an.unknown.graphics.state.dictionary", dictionaryName));

                // at this point, all we care about is the FONT entry in the GS dictionary
                PdfArray fontParameter = gsDic.GetAsArray(PdfName.FONT);
                if (fontParameter != null){
                    CMapAwareDocumentFont font = processor.GetFont((PRIndirectReference)fontParameter[0]);
                    float size = fontParameter.GetAsNumber(1).FloatValue;

                    processor.Gs().font = font;
                    processor.Gs().fontSize = size;
                }
            }
            public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
            {
                PdfString str = (PdfString)operands[0];

                processor.DisplayPdfString(str);
            }
Ejemplo n.º 41
0
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
     GraphicsState gs = processor.gsStack.Peek();
     GraphicsState copy = new GraphicsState(gs);
     processor.gsStack.Push(copy);
 }
            public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
            {
                PdfNumber leading = (PdfNumber)operands[0];

                processor.Gs().leading = leading.FloatValue;
            }
Ejemplo n.º 43
0
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
     float a = ((PdfNumber)operands[0]).FloatValue;
     float b = ((PdfNumber)operands[1]).FloatValue;
     float c = ((PdfNumber)operands[2]).FloatValue;
     float d = ((PdfNumber)operands[3]).FloatValue;
     float e = ((PdfNumber)operands[4]).FloatValue;
     float f = ((PdfNumber)operands[5]).FloatValue;
     Matrix matrix = new Matrix(a, b, c, d, e, f);
     GraphicsState gs = processor.gsStack.Peek();
     gs.ctm = matrix.Multiply(gs.ctm);
 }
            public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
            {
                PdfNumber wordSpace = (PdfNumber)operands[0];

                processor.Gs().wordSpacing = wordSpace.FloatValue;
            }
Ejemplo n.º 45
0
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
     processor.Gs().fillColor = GetColor(4, operands);
 }
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
 {
     processor.textMatrix     = new Matrix();
     processor.textLineMatrix = processor.textMatrix;
     processor.BeginText();
 }
Ejemplo n.º 47
0
		    public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
			    processor.Gs().colorSpaceStroke = (PdfName)operands[0];		
		    }
 public void Invoke(PdfContentStreamProcessor processor,
                    PdfLiteral oper, List <PdfObject> operands)
 {
     processor.BeginMarkedContent((PdfName)operands[0], new PdfDictionary());
 }
Ejemplo n.º 49
0
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
     processor.Gs().strokeColor = GetColor(processor.Gs().colorSpaceStroke, operands);
 }
            public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List <PdfObject> operands)
            {
                PdfName xobjectName = (PdfName)operands[0];

                processor.DisplayXObject(xobjectName);
            }
Ejemplo n.º 51
0
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
     processor.gsStack.Pop();
 }
Ejemplo n.º 52
0
 public override void ParseTag(String tag, PdfObject obj, PdfDictionary page) {
     if (obj is PdfNumber) {
         PdfNumber mcid = (PdfNumber) obj;
         RenderFilter filter = new MyMarkedContentRenderFilter(mcid.IntValue);
         ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
         FilteredTextRenderListener listener = new FilteredTextRenderListener(
             strategy, filter);
         PdfContentStreamProcessor processor = new PdfContentStreamProcessor(
             listener);
         processor.ProcessContent(PdfReader.GetPageContent(page), page
                                                                      .GetAsDict(PdfName.RESOURCES));
         outp.Write(XMLUtil.EscapeXML(listener.GetResultantText(), true));
     }
     else {
         base.ParseTag(tag, obj, page);
     }
 }
Ejemplo n.º 53
0
 public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
     processor.textMatrix = new Matrix();
     processor.textLineMatrix = processor.textMatrix;
     processor.BeginText();
 }