diff --git a/PROMS/Volian.Print.Library/Rtf2iTextSharp.cs b/PROMS/Volian.Print.Library/Rtf2iTextSharp.cs index 391f71d6..8d790558 100644 --- a/PROMS/Volian.Print.Library/Rtf2iTextSharp.cs +++ b/PROMS/Volian.Print.Library/Rtf2iTextSharp.cs @@ -118,6 +118,13 @@ namespace Volian.Print.Library get { return _DefaultFont; } set { _DefaultFont = value; } } + private string _MyDebugID = null; + public string MyDebugID + { + get { return _MyDebugID; } + set { _MyDebugID = value; } + } + // public Rtf2iTextSharp(IRtfDocument rtfDoc, Document doc, PdfWriter writer) public Rtf2iTextSharp(IRtfDocument rtfDoc) { @@ -223,12 +230,18 @@ namespace Volian.Print.Library break; } } - private bool ContainsSymbols(string p) + private bool ContainsAllSymbols(string p) { foreach (char c in p) if (c <= '\x7F') return false; return true; } + private bool ContainsAnySymbols(string p) + { + foreach (char c in p) + if (c > '\x7F' && c != '\xA0' && c != '\xB0') return true; + return false; + } protected override void DoVisitText(IRtfVisualText visualText) { int profileDepth = ProfileTimer.Push(">>>> DoVisitText"); @@ -246,7 +259,12 @@ namespace Volian.Print.Library // and the 16bit conversion to be pdf may be off. //if (font.Familyname.StartsWith("Arial") && font.Size == 11 && DoingComparison) font.Size = 11.15f; iTextSharp.text.pdf.FontSelector fs = new FontSelector(); - if (visualText.Format.Font.Name == "VESymbFix" && ContainsSymbols(visualText.Text)) + // DEBUG + //if (visualText.Format.Font.Name != "VESymbFix" && ContainsAnySymbols(visualText.Text)) + //{ + // Console.WriteLine("Font: {0} TEXT: {1}", visualText.Format.Font.Name, ShowSpecialCharacters(visualText.Text)); + //} + if (visualText.Format.Font.Name == "VESymbFix" && ContainsAllSymbols(visualText.Text)) { fs.AddFont(font); // if the symbol character cannot be found in VESymbFix then check/use the Consolas font @@ -264,7 +282,9 @@ namespace Volian.Print.Library } else { - Chunk chk = new Chunk(visualText.Text, font); + // The bullet character for some unknown reason was entered in a text font rather than a symbol font + // switch from x25cf ot x2022 moves to a valid bullet character in the text font + Chunk chk = new Chunk(visualText.Text.Replace("\u25cf", "\u2022"), font); AdjustChunk(visualText, font, chk); _MyParagraph.Add(chk); }