/// <summary> /// Gets a PdfFont from an XFont. If no PdfFont already exists, a new one is created. /// </summary> public PdfFont GetFont(XFont font) { string selector = font.Selector; if (selector == null) { selector = ComputeKey(font); //new FontSelector(font); font.Selector = selector; } PdfFont pdfFont; if (!_fonts.TryGetValue(selector, out pdfFont)) { if (font.Unicode) { pdfFont = new PdfType0Font(Owner, font, font.IsVertical); } else { pdfFont = new PdfTrueTypeFont(Owner, font); } //pdfFont.Document = _document; Debug.Assert(pdfFont.Owner == Owner); _fonts[selector] = pdfFont; } return(pdfFont); }
//string[][] pdfStandardFonts = //{ // new string[]{"Times-Roman", "Times-Bold", "Times-Italic", "Times-BoldItalic"}, // new string[]{"Helvetica", "Helvetica-Bold", "Helvetica-Oblique", "Helvetica-BoldOblique"}, // new string[]{"Courier", "Courier-Bold", "Courier-Oblique", "Courier-BoldOblique"}, // new string[]{"Symbol", "Symbol", "Symbol", "Symbol"}, // new string[]{"ZapfDingbats", "ZapfDingbats", "ZapfDingbats", "ZapfDingbats"}, //}; #if true /// <summary> /// Gets a PdfFont from a font program. If no PdfFont already exists, a new one is created. /// </summary> public PdfFont GetFont(string idName, byte[] fontData) { FontSelector selector = new FontSelector(idName); PdfFont pdfFont; if (!fonts.TryGetValue(selector, out pdfFont)) { //if (font.Unicode) pdfFont = new PdfType0Font(owner, idName, fontData, false); //else // pdfFont = new PdfTrueTypeFont(this.owner, font); //pdfFont.Document = this.document; Debug.Assert(pdfFont.Owner == owner); fonts[selector] = pdfFont; } return(pdfFont); }
/// <summary> /// Gets a PdfFont from a font program. If no PdfFont already exists, a new one is created. /// </summary> public PdfFont GetFont(string idName, byte[] fontData) { string selector = idName; PdfFont pdfFont; if (!_fonts.TryGetValue(selector, out pdfFont)) { //if (font.Unicode) pdfFont = new PdfType0Font(Owner, idName, fontData, false); //else // pdfFont = new PdfTrueTypeFont(_owner, font); //pdfFont.Document = _document; Debug.Assert(pdfFont.Owner == Owner); _fonts[selector] = pdfFont; } return(pdfFont); }
/// <summary> /// Gets a PdfFont from an XFont. If no PdfFont already exists, a new one is created. /// </summary> public PdfFont GetFont(XFont font) { string selector = font.Selector; if (selector == null) { selector = ComputeKey(font); //new FontSelector(font); font.Selector = selector; } PdfFont pdfFont; if (!_fonts.TryGetValue(selector, out pdfFont)) { if (font.Unicode) pdfFont = new PdfType0Font(Owner, font, font.IsVertical); else pdfFont = new PdfTrueTypeFont(Owner, font); //pdfFont.Document = _document; Debug.Assert(pdfFont.Owner == Owner); _fonts[selector] = pdfFont; } return pdfFont; }
/// <summary> /// Gets a PdfFont from an XFont. If no PdfFont already exists, a new one is created. /// </summary> public PdfFont GetFont(XFont font) { string fontName = font.Name; FontSelector selector = font.selector; if (selector == null) { selector = new FontSelector(font); font.selector = selector; } PdfFont pdfFont; if (!fonts.TryGetValue(selector, out pdfFont)) { if (font.Unicode) { pdfFont = new PdfType0Font(owner, font, font.IsVertical); } else { pdfFont = new PdfTrueTypeFont(owner, font); } //pdfFont.Document = this.document; Debug.Assert(pdfFont.Owner == owner); fonts[selector] = pdfFont; //if (this.owner.EarlyWrite) //{ // //pdfFont.Close(); delete // //pdfFont.AssignObjID(ref this.document.ObjectID); // BUG: just test code!!!! // //pdfFont.WriteObject(null); //} } return(pdfFont); #if false goto TrueTypeFont; switch (font.Name) { case "Times": case "Times New Roman": std = 0; break; case "Helvetica": std = 1; break; case "Courier": std = 2; break; case "Symbol": std = 3; break; case "ZapfDingbats": std = 4; break; } if (std != -1) { int idx = (int)font.Style & 0x3; string name = pdfStandardFonts[std][idx]; PdfFont pdfFont = GetFont(name); if (pdfFont == null) { pdfFont = new PdfFont(); pdfFont.SubType = "/Type1"; pdfFont.BaseFont = name; pdfFont.DefaultName = string.Format("F{0}", PdfFontTable.fontNumber++); } return(pdfFont); } else { TrueTypeFont: // TrueType font PdfFont pdfFont = new PdfFont(); pdfFont.SubType = "/TrueType"; pdfFont.FirstChar = 0; pdfFont.LastChar = 255; pdfFont.BaseFont = font.Name; pdfFont.DefaultName = string.Format("F{0}", PdfFontTable.fontNumber++); } #endif // TrueType font // PdfFont pdfFont = new PdfFont(); // pdfFont.descriptor = new PdfFontDescriptor((TrueTypeDescriptor)FontDescriptorStock.Global.CreateDescriptor(font)); // pdfFont.SubType = "/TrueType"; // pdfFont.FirstChar = 0; // pdfFont.LastChar = 255; // pdfFont.BaseFont = font.Name; // pdfFont.BaseFont = pdfFont.BaseFont.Replace(" ", ""); // switch (font.Style & (XFontStyle.Bold | XFontStyle.Italic)) // { // case XFontStyle.Bold: // pdfFont.BaseFont += ",Bold"; // break; // // case XFontStyle.Italic: // pdfFont.BaseFont += ",Italic"; // break; // // case XFontStyle.Bold | XFontStyle.Italic: // pdfFont.BaseFont += ",BoldItalic"; // break; // } // pdfFont.descriptor.FontName = pdfFont.BaseFont; // pdfFont.DefaultName = string.Format("F{0}", PdfFontTable.fontNumber++); }
/// <summary> /// Gets a PdfFont from a font program. If no PdfFont already exists, a new one is created. /// </summary> public PdfFont GetFont(string idName, byte[] fontData) { Debug.Assert(false); //FontSelector selector = new FontSelector(idName); string selector = null; // ComputeKey(font); //new FontSelector(font); PdfFont pdfFont; if (!_fonts.TryGetValue(selector, out pdfFont)) { //if (font.Unicode) pdfFont = new PdfType0Font(Owner, idName, fontData, false); //else // pdfFont = new PdfTrueTypeFont(_owner, font); //pdfFont.Document = _document; Debug.Assert(pdfFont.Owner == Owner); _fonts[selector] = pdfFont; } return pdfFont; }
/// <summary> /// Gets a PdfFont from an XFont. If no PdfFont already exists, a new one is created. /// </summary> public PdfFont GetFont(XFont font) { string fontName = font.Name; PdfFontTable.FontSelector selector = font.selector; if (selector == null) { selector = new FontSelector(font); font.selector = selector; } PdfFont pdfFont; if (!this.fonts.TryGetValue(selector, out pdfFont)) { if (font.Unicode) pdfFont = new PdfType0Font(this.owner, font, font.IsVertical); else pdfFont = new PdfTrueTypeFont(this.owner, font); //pdfFont.Document = this.document; Debug.Assert(pdfFont.Owner == this.owner); this.fonts[selector] = pdfFont; //if (this.owner.EarlyWrite) //{ // //pdfFont.Close(); delete // //pdfFont.AssignObjID(ref this.document.ObjectID); // BUG: just test code!!!! // //pdfFont.WriteObject(null); //} } return pdfFont; #if false goto TrueTypeFont; switch (font.Name) { case "Times": case "Times New Roman": std = 0; break; case "Helvetica": std = 1; break; case "Courier": std = 2; break; case "Symbol": std = 3; break; case "ZapfDingbats": std = 4; break; } if (std != -1) { int idx = (int)font.Style & 0x3; string name = pdfStandardFonts[std][idx]; PdfFont pdfFont = GetFont(name); if (pdfFont == null) { pdfFont = new PdfFont(); pdfFont.SubType = "/Type1"; pdfFont.BaseFont = name; pdfFont.DefaultName = string.Format("F{0}", PdfFontTable.fontNumber++); } return pdfFont; } else { TrueTypeFont: // TrueType font PdfFont pdfFont = new PdfFont(); pdfFont.SubType = "/TrueType"; pdfFont.FirstChar = 0; pdfFont.LastChar = 255; pdfFont.BaseFont = font.Name; pdfFont.DefaultName = string.Format("F{0}", PdfFontTable.fontNumber++); } #endif // TrueType font // PdfFont pdfFont = new PdfFont(); // pdfFont.descriptor = new PdfFontDescriptor((TrueTypeDescriptor)FontDescriptorStock.Global.CreateDescriptor(font)); // pdfFont.SubType = "/TrueType"; // pdfFont.FirstChar = 0; // pdfFont.LastChar = 255; // pdfFont.BaseFont = font.Name; // pdfFont.BaseFont = pdfFont.BaseFont.Replace(" ", ""); // switch (font.Style & (XFontStyle.Bold | XFontStyle.Italic)) // { // case XFontStyle.Bold: // pdfFont.BaseFont += ",Bold"; // break; // // case XFontStyle.Italic: // pdfFont.BaseFont += ",Italic"; // break; // // case XFontStyle.Bold | XFontStyle.Italic: // pdfFont.BaseFont += ",BoldItalic"; // break; // } // pdfFont.descriptor.FontName = pdfFont.BaseFont; // pdfFont.DefaultName = string.Format("F{0}", PdfFontTable.fontNumber++); }
//string[][] pdfStandardFonts = //{ // new string[]{"Times-Roman", "Times-Bold", "Times-Italic", "Times-BoldItalic"}, // new string[]{"Helvetica", "Helvetica-Bold", "Helvetica-Oblique", "Helvetica-BoldOblique"}, // new string[]{"Courier", "Courier-Bold", "Courier-Oblique", "Courier-BoldOblique"}, // new string[]{"Symbol", "Symbol", "Symbol", "Symbol"}, // new string[]{"ZapfDingbats", "ZapfDingbats", "ZapfDingbats", "ZapfDingbats"}, //}; #if true /// <summary> /// Gets a PdfFont from a font program. If no PdfFont already exists, a new one is created. /// </summary> public PdfFont GetFont(string idName, byte[] fontData) { PdfFontTable.FontSelector selector = new FontSelector(idName); PdfFont pdfFont; if (!this.fonts.TryGetValue(selector, out pdfFont)) { //if (font.Unicode) pdfFont = new PdfType0Font(this.owner, idName, fontData, false); //else // pdfFont = new PdfTrueTypeFont(this.owner, font); //pdfFont.Document = this.document; Debug.Assert(pdfFont.Owner == this.owner); this.fonts[selector] = pdfFont; } return pdfFont; }