//------------------------------------------------------------------------------------------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(); }
//------------------------------------------------------------------------------------------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); } }
//------------------------------------------------------------------------------------------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"); } }
//------------------------------------------------------------------------------------------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) { }