コード例 #1
0
        //------------------------------------------------------------------------------------------07.02.2006
        /// <summary>Writes the RepObj to the buffer.</summary>
        /// <param name="e">Environment data</param>
        public void Write(PdfIndirectObject_PageContents.Environment e)
        {
            PdfIndirectObject_PageContents p = e.pdfIndirectObject_PageContents;
            RepLine repLine = (RepLine)e.repObj;
            Double  rOfsX   = repLine.rWidth * repLine.rAlignH;
            Double  rOfsY   = repLine.rHeight * repLine.rAlignV;

            e.matrixD.Multiply(1, 0, 0, 1, -rOfsX, -rOfsY);
            if (repLine.penProp.rWidth > 0f)
            {
                p.Write_Pen(repLine.penProp);
                p.Write_Point(e.matrixD.rDX, e.matrixD.rDY);
                p.Command("m");
                p.Write_Point(e.matrixD, repLine.rWidth, repLine.rHeight);
                p.Command("l");
                p.Command("S");
            }
        }
コード例 #2
0
        //------------------------------------------------------------------------------------------07.02.2006
        /// <summary>Writes the RepObj to the buffer.</summary>
        /// <param name="e">Environment data</param>
        public void Write(PdfIndirectObject_PageContents.Environment e)
        {
            PdfIndirectObject_PageContents p = e.pdfIndirectObject_PageContents;
            RepRect repRect = (RepRect)e.repObj;
            Double  rOfsX   = repRect.rWidth * repRect.rAlignH;
            Double  rOfsY   = repRect.rHeight * (1 - repRect.rAlignV);

            e.matrixD.Multiply(1, 0, 0, 1, -rOfsX, rOfsY);
            if (repRect.penProp != null)
            {
                if (repRect.penProp.rWidth > 0f)
                {
                    p.Write_Pen(repRect.penProp);
                }
                else
                {
                    repRect.penProp = null;
                }
            }
            if (repRect.brushProp != null)
            {
                p.Write_Brush(repRect.brushProp);
            }

            if (e.bComplex)
            {
                p.Command("q");
                p.Write_Matrix(e.matrixD);
                p.Command("cm");
                p.Write_Point(0, 0);  p.Space();  p.Number(repRect.rWidth);  p.Space();  p.Number(repRect.rHeight);  p.Space();
                p.Command("re");
                p.Command(repRect.penProp == null ? "f" : (repRect.brushProp == null ? "S" : "B"));
                p.Command("Q");
            }
            else
            {
                p.Write_Point(e.matrixD.rDX, e.matrixD.rDY);  p.Space();  p.Number(repRect.rWidth);  p.Space();  p.Number(repRect.rHeight);
                p.Command("re");
                p.Command(repRect.penProp == null ? "f" : (repRect.brushProp == null ? "S" : "B"));
            }
        }
コード例 #3
0
        //------------------------------------------------------------------------------------------07.02.2006
        /// <summary>Writes the RepObj to the buffer.</summary>
        /// <param name="e">Environment data</param>
        public void Write(PdfIndirectObject_PageContents.Environment e)
        {
            PdfIndirectObject_PageContents p = e.pdfIndirectObject_PageContents;
            RepString repString = (RepString)e.repObj;
            Double    rWidth    = repString.fontProp.rWidth(repString.sText);
            Double    rOfsX     = rWidth * repString.rAlignH;
            Double    rOfsY     = repString.fontProp.rHeight() * (1 - repString.rAlignV);

            e.matrixD.Multiply(new MatrixD(1, 0, 0, 1, -rOfsX, rOfsY));

            p.Command("BT");
            p.Write_Font(repString.fontProp);
            if (e.bComplex)
            {
                p.Write_Matrix(e.matrixD);
                p.Command("Tm");
            }
            else
            {
                p.Write_Point(e.matrixD.rDX, e.matrixD.rDY);
                p.Command("Td");
            }
            p.String(repString.sText);
            p.Command("Tj");
            p.Command("ET");

            if (repString.fontProp.bUnderline)
            {
                Type1FontData   type1FontData   = (Type1FontData)repString.fontProp.fontPropData.fontData;
                PdfFontPropData pdfFontPropData = (PdfFontPropData)repString.fontProp.fontPropData;
                Double          rSizeFactor     = type1FontData.rSizeFactor(repString.fontProp);
                PenProp         pp = new PenProp(e.report, rSizeFactor * type1FontData.fUnderlineThickness / 1000, repString.fontProp.color);
                p.Write_Pen(pp);
                Double rD = rSizeFactor * type1FontData.fUnderlinePosition / 1000;
                p.Write_Point(e.matrixD, 0, -rD);
                p.Command("m");
                p.Write_Point(e.matrixD, rWidth, -rD);
                p.Command("l");
                p.Command("S");
            }
        }