Replace Hard Hyphens with normal hyphen so the PDF search for hyphens will work properly

Support using regular hyphens as hard-hyphens
This commit is contained in:
Rich
2015-01-24 19:09:08 +00:00
parent 24fac1b04c
commit 638fea272e
2 changed files with 19 additions and 1 deletions

View File

@@ -121,7 +121,7 @@ namespace Volian.Controls.Library
_MyItemInfo = itemInfo; _MyItemInfo = itemInfo;
OriginalText = InfoText; OriginalText = InfoText;
if (OriginalText.Contains("Prerequisite") && epMode == E_EditPrintMode.Print) if (OriginalText.Contains("Prerequisite") && epMode == E_EditPrintMode.Print)
OriginalText = Regex.Replace(OriginalText, @"\\{Prerequisite Step: .*?\\}", ""); OriginalText = Regex.Replace(OriginalText, @"\\{Prerequisite Step: .*?\\}", "");
TextFont = itemInfo.GetItemFont();//GetItemFont(); TextFont = itemInfo.GetItemFont();//GetItemFont();
// if in print mode, and this is the HLS of a smart template (checklist formats) see if the hls // if in print mode, and this is the HLS of a smart template (checklist formats) see if the hls
// splits across 2 lines. // splits across 2 lines.
@@ -167,6 +167,9 @@ namespace Volian.Controls.Library
} }
} }
text = CreateRtf(colorLinks, text, tableShouldBeOutlined, wordsShouldBeReplaced, numbersShouldBeFormated, tableHasBorder, ROsShouldBeAdjusted, underlineAfterDashSpace); text = CreateRtf(colorLinks, text, tableShouldBeOutlined, wordsShouldBeReplaced, numbersShouldBeFormated, tableHasBorder, ROsShouldBeAdjusted, underlineAfterDashSpace);
// Replace Hard Hyphens with normal hyphen so the PDF search for hyphens will work properly
if (text.Contains(@"\u8209?") && epMode == E_EditPrintMode.Print)
text = OriginalText.Replace(@"\u8209?", "-");
StartText = text; StartText = text;
ProfileTimer.Pop(profileDepth); ProfileTimer.Pop(profileDepth);

View File

@@ -88,8 +88,23 @@ namespace Volian.Print.Library
return retval; return retval;
} }
} }
public class VlnSplitCharacter : ISplitCharacter
{
public bool IsSplitCharacter(int start, int current, int end, char[] cc, PdfChunk[] ck)
{
return (cc[current] == ' ');
}
public bool IsSplitCharacter(char c)
{
return (c == ' ');
}
}
public static VlnSplitCharacter mySplitter = new VlnSplitCharacter();
public static float TextAt(PdfContentByte cb, Paragraph iParagraph, float x, float y, float width, float height, string debugText, float yBottomMargin) public static float TextAt(PdfContentByte cb, Paragraph iParagraph, float x, float y, float width, float height, string debugText, float yBottomMargin)
{ {
// Change the chunks to only split on spaces rather than spaces and hyphens
foreach (Chunk chk in iParagraph)
chk.SetSplitCharacter(mySplitter);
VlnSvgPageHelper _MyPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper; VlnSvgPageHelper _MyPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper;
PdfLayer textLayer = _MyPageHelper == null ? null : _MyPageHelper.TextLayer; PdfLayer textLayer = _MyPageHelper == null ? null : _MyPageHelper.TextLayer;
float left = x + Offset.X; float left = x + Offset.X;