public override void SetTransformation(double translateX, double translateY, double rotate, double scaleX, double scaleY)
        {
            translateX *= MmToPt;
            translateY *= MmToPt;

            if (_hasSavedGraphicsState)
            {
                _contentStream.RestoreGraphicsState();
                _lastStrokingColor    = 0;
                _lastNonStrokingColor = 0;
                _lastLineWidth        = 1;
            }

            _lastFont     = null;
            _lastFontSize = 0;

            _contentStream.SaveGraphicsState();
            _hasSavedGraphicsState = true;

            using (Matrix matrix = new Matrix())
            {
                matrix.Translate((float)translateX, (float)translateY);
                if (rotate != 0)
                {
                    matrix.Rotate((float)(rotate / Math.PI * 180));
                }

                if (scaleX != 1 || scaleY != 1)
                {
                    matrix.Scale((float)scaleX, (float)scaleY);
                }

                _contentStream.Transform(matrix);
            }
        }
Beispiel #2
0
        /// <inheritdoc />
        public override void SetTransformation(double translateX, double translateY, double rotate, double scaleX, double scaleY)
        {
            translateX *= MmToPt;
            translateY *= MmToPt;

            if (_hasSavedGraphicsState)
            {
                _contentStream.RestoreGraphicsState();
                _lastStrokingColor    = 0;
                _lastNonStrokingColor = 0;
                _lastLineWidth        = 1;
            }

            _lastFont     = null;
            _lastFontSize = 0;

            _contentStream.SaveGraphicsState();
            _hasSavedGraphicsState = true;

            var matrix = new TransformationMatrix();

            matrix.Translate(translateX, translateY);
            matrix.Rotate(rotate);
            matrix.Scale(scaleX, scaleY);

            _contentStream.Transform(matrix);
        }