Added a FormattedDisplayText for use on Calvert’s Placekeepers

Will now handle Bold, Underline, and Super/Sub Script
This commit is contained in:
John Jenko 2014-09-18 19:58:04 +00:00
parent 29f3db8605
commit b27b0ad8bd
2 changed files with 69 additions and 7 deletions

View File

@ -1813,6 +1813,19 @@ namespace VEPROMS.CSLA.Library
return (this.IsProcedure || parent.IsApplicable(apple)) && (cfg.MasterSlave_Applicability.GetFlags().Count == 0 || cfg.MasterSlave_Applicability.GetFlags().Contains(apple));
}
//end jcb added inherited applicability
public string FormattedDisplayText
{
get
{
string str = MyContent.Text;
str = Regex.Replace(str, @"\<[uU]\>", MyDocVersion.DocVersionConfig.Unit_Number);
//if (str.Contains("<u>"))
// str = str.Replace("<u>", MyDocVersion.DocVersionConfig.Unit_Number);
//if (str.Contains("<U>"))
// str = str.Replace("<U>", MyDocVersion.DocVersionConfig.Unit_Number);
return ConvertToDisplayText(str,false);
}
}
public string DisplayText
{
get
@ -1845,9 +1858,13 @@ namespace VEPROMS.CSLA.Library
//get { return ConvertToDisplayText(MyContent.Number); }
}
public static string ConvertToDisplayText(string txt)
{
return ConvertToDisplayText(txt, true);
}
public static string ConvertToDisplayText(string txt, bool stripRTF)
{
string retval = txt;
retval = StripRtfFormatting(retval);
if (stripRTF) retval = StripRtfFormatting(retval);
retval = StripLinks(retval);
retval = ReplaceSpecialCharacters(retval);
retval = retval.Replace("\u2011", "-");

View File

@ -4,6 +4,7 @@ using System.Text;
using System.Drawing;
using LBWordLibrary;
using VEPROMS.CSLA.Library;
using System.Text.RegularExpressions;
namespace Volian.Print.Library
{
@ -59,7 +60,7 @@ namespace Volian.Print.Library
foreach (pkParagraph myPlacekeeper in myPlacekeepers)
{
if(myPlacekeepers.Count > 1)
AddSectionHeader(myPlacekeeper.MyParagraph.MyItemInfo.DisplayNumber, myPlacekeeper.MyParagraph.MyItemInfo.DisplayText);
AddSectionHeader(myPlacekeeper.MyParagraph.MyItemInfo.DisplayNumber, myPlacekeeper.MyParagraph.MyItemInfo.FormattedDisplayText);
foreach (pkParagraph pgh in myPlacekeeper.MyChildren)
{
foreach (pkParagraph pghC in pgh.MyCautionsAndNotes)
@ -68,9 +69,9 @@ namespace Volian.Print.Library
string doneStr = (sc.Step_Placekeeper.ToUpper() == "C")? "C":"";
string NoteCautionTab = "NOTE: ";
if (pghC.MyParagraph.MyItemInfo.IsCaution) NoteCautionTab = "CAUTION: ";
AddCautionOrNote(NoteCautionTab, pghC.MyParagraph.MyItemInfo.DisplayText, doneStr, (pghC.MyParagraph.MyItemInfo.PageNumber+1).ToString());
AddCautionOrNote(NoteCautionTab, pghC.MyParagraph.MyItemInfo.FormattedDisplayText, doneStr, (pghC.MyParagraph.MyItemInfo.PageNumber+1).ToString());
}
AddHighLevelStep(pgh.MyParagraph.MyItemInfo.MyTab.CleanText, pgh.MyParagraph.MyItemInfo.DisplayText, pgh.MyParagraph.MyItemInfo.FormatStepType == 9 ? "C" : "", (pgh.MyParagraph.MyItemInfo.PageNumber + 1).ToString());
AddHighLevelStep(pgh.MyParagraph.MyItemInfo.MyTab.CleanText, pgh.MyParagraph.MyItemInfo.FormattedDisplayText, pgh.MyParagraph.MyItemInfo.FormatStepType == 9 ? "C" : "", (pgh.MyParagraph.MyItemInfo.PageNumber + 1).ToString());
if (pgh.MyChildren.Count > 0)
{
bool conAct = false;
@ -92,7 +93,7 @@ namespace Volian.Print.Library
AddNotesOrCautions(cpgh,level, ref conAct);
if (!conAct)
conAct = IsContinuousActionPlacekeeper(conAct, cpgh);
ContinueSubStep(cpgh.MyParagraph.MyItemInfo.DisplayText, level);
ContinueSubStep(cpgh.MyParagraph.MyItemInfo.FormattedDisplayText, level);
AddChildren(cpgh, level+1, ref conAct);
}
}
@ -121,7 +122,7 @@ namespace Volian.Print.Library
if (!_FirstLine) _WordSel.TypeParagraph();
_FirstLine = false;
SetIndent(.33F + (.31F * level), -.31F);
WriteCell(NoteCautionTab + ii.DisplayText, false, false);
WriteCell(NoteCautionTab + ii.FormattedDisplayText, false, false);
}
public void BuildSample()
{
@ -306,11 +307,55 @@ namespace Volian.Print.Library
SetAlignment(LBWdParagraphAlignment.wdAlignParagraphCenter, LBWdCellVerticalAlignment.wdCellAlignVerticalBottom);
WriteCell(page, false, false);
}
static Regex rgx = new Regex(@"\\(b|ul|up[1-9]|dn0|up0|dn[1-9]|b0|ulnone)( |$|(?=\\))");
private void WriteRTF(string text)
{
if (text.Contains("\\"))
Console.WriteLine("here");
Match m = rgx.Match(text);
while (m.Success)
{
if (m.Index > 0)
_WordSel.TypeText(text.Substring(0,m.Index));
switch (m.Groups[1].Value)
{
case "b": // bold on
_WordSel.Font.Bold = 1;
break;
case "b0": // bold off
_WordSel.Font.Bold = 0;
break;
case "ul": // underline on
_WordSel.Font.Underline = LBWdUnderline.wdUnderlineSingle;
break;
case "ulnone": // underline off
_WordSel.Font.Underline = LBWdUnderline.wdUnderlineNone;
break;
case "dn0": // superscript off
_WordSel.Font.Superscript = 0;
break;
case "up0": // subscript off
_WordSel.Font.Subscript = 0;
break;
default:
if (m.Groups[1].Value.StartsWith("dn"))// subscript on
_WordSel.Font.Subscript = 1;
else // superscript on
_WordSel.Font.Superscript = 1;
break;
}
text = text.Substring(m.Index+m.Length);
m = rgx.Match(text);
}
_WordSel.TypeText(text);
}
private void WriteCell(string text, bool bold, bool advance)
{
_WordSel.Font.Name = _pkFont.Family;//"Arial";
_WordSel.Font.Bold = bold ? 1 : 0;
_WordSel.TypeText(text);
//_WordSel.TypeText(text);
WriteRTF(text);
if (advance) Advance();
}
private void SetIndent(float left, float first)