Exemplo n.º 1
0
        //------------------------------------------------------------------------------------------29.07.2006
        /// <summary>Writes the object to the buffer.</summary>
        internal override void Write()
        {
            Type1FontData type1FontData = (Type1FontData)fontData;

            StartObj();
            Dictionary_Start();
            Dictionary_Key("Type");  Name("Font");
            Dictionary_Key("Subtype");  Name("Type1");
            Dictionary_Key("BaseFont");  Name(type1FontData.sFontName);
            if (type1FontData.sFamilyName != "ZapfDingbats" && type1FontData.sFamilyName != "Symbol")
            {
                Dictionary_Key("Encoding");  Name("WinAnsiEncoding");
            }
            Dictionary_End();
            EndObj();
        }
Exemplo n.º 2
0
 //------------------------------------------------------------------------------------------06.03.2005
 /// <summary>Gets the font data object that is identified by the specified style.</summary>
 /// <param name="fontStyle">Style value that identifies the font data object</param>
 /// <value>Font data object that is identified by the specified style</value>
 /// <remarks>If there is no font data object with the specified style, <see langword="null"/> will be returned.</remarks>
 internal FontData this[FontStyle fontStyle] {
     get {
         Int32    i        = (Int32)fontStyle;
         FontData fontData = aFontData[i];
         if (fontData == null)
         {
             if (fontDef.fontType == FontType.InternalAFM)
             {
                 fontData = new Type1FontData(fontDef, fontDef.sFontName, fontStyle);
             }
             else
             {
                 fontData = new OpenTypeFontData(fontDef, fontStyle);
             }
             aFontData[i] = fontData;
         }
         return(fontData);
     }
 }
Exemplo n.º 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");
            }
        }
Exemplo n.º 4
0
 //------------------------------------------------------------------------------------------29.07.2006
 /// <summary>Creates a font indirect object for a Type1 font.</summary>
 /// <param name="pdfFormatter">PDF formatter</param>
 /// <param name="type1FontData">Type1 font data</param>
 internal PdfIndirectObject_Font_Type1(PdfFormatter pdfFormatter, Type1FontData type1FontData)
     : base(pdfFormatter, type1FontData)
 {
 }