COperator CreateOperator(OpCodeName nameop) { string name = nameop.ToString(); COperator op = OpCodes.OperatorFromName(name); return(CreateOperator(op)); }
COperator CreateOperator() { string name = _lexer.Token; COperator op = OpCodes.OperatorFromName(name); return(CreateOperator(op)); }
COperator CreateOperator() { string name = lexer.Token; COperator op = OpCodes.OperatorFromName(name); if (op.OpCode.OpCodeName == OpCodeName.ID) { lexer.ScanInlineImage(); } #if DEBUG if (op.OpCode.Operands != -1 && op.OpCode.Operands != operands.Count) { if (op.OpCode.OpCodeName != OpCodeName.ID) { GetType(); Debug.Assert(false, "Invalid number of operands."); } } #endif op.Operands.Add(operands); return(op); }
/// <summary> /// Renders the contents of the supplied Stream to the Page at the position specified by the provided Rectangle /// </summary> /// <param name="page"></param> /// <param name="stream"></param> /// <param name="rect"></param> protected virtual void RenderContentStream(PdfPage page, PdfStream stream, PdfRectangle rect) { if (stream == null || rect.IsEmpty) { return; } var content = ContentReader.ReadContent(stream.UnfilteredValue); var matrix = new XMatrix(); matrix.TranslateAppend(rect.X1, rect.Y1); var matElements = matrix.GetElements(); var matrixOp = OpCodes.OperatorFromName("cm"); foreach (var el in matElements) { matrixOp.Operands.Add(new CReal { Value = el }); } content.Insert(0, matrixOp); // Save and restore Graphics state content.Insert(0, OpCodes.OperatorFromName("q")); content.Add(OpCodes.OperatorFromName("Q")); var appendedContent = page.Contents.AppendContent(); using (var ms = new MemoryStream()) { var cw = new ContentWriter(ms); foreach (var obj in content) { obj.WriteObject(cw); } appendedContent.CreateStream(ms.ToArray()); } }