object getValue(Template.Field.ValueTypes valueType, bool cached) { if (!cached) { return(getValue_(valueType)); } if (!valueTypes2cachedValue.TryGetValue(valueType, out object o)) {//!!!to cache Table field values to re-use them internally only!!! o = getValue_(valueType); valueTypes2cachedValue[valueType] = o; } return(o); }
internal object GetValue(Template.Field.ValueTypes valueType) { // return getValue(valueType, true);//test; if works, remove //} //object getValue(Template.Field.ValueTypes valueType, bool cached) //{ // if (!cached) // return getValue_(valueType); if (!valueTypes2cachedValue.TryGetValue(valueType, out object o)) {//!!!to cache Table field values to re-use them internally only!!! o = getValue_(valueType); valueTypes2cachedValue[valueType] = o; } return(o); }
public object GetValue(Template.Field.ValueTypes valueType) { if (!ValueTypes2Values.TryGetValue(valueType, out object o)) { if (!Found) { o = null; } else { o = getValue(valueType); } ValueTypes2Values[valueType] = o; } return(o); }
object getValue(Template.Field.ValueTypes valueType) { RectangleF r = (RectangleF)ActualRectangle; switch (valueType) { case Template.Field.ValueTypes.PdfText: case Template.Field.ValueTypes.PdfTextLines: List <string> ls; if (ActualField.ColumnOfTable == null) { ls = Pdf.GetTextLinesSurroundedByRectangle(page.PdfCharBoxs, r, page.pageCollection.ActiveTemplate.TextAutoInsertSpace); } else { ls = getTextLinesAsTableColumn(); } if (valueType == Template.Field.ValueTypes.PdfText) { return(string.Join("\r\n", ls)); } return(ls); case Template.Field.ValueTypes.PdfCharBoxs: return(Pdf.GetCharBoxsSurroundedByRectangle(page.PdfCharBoxs, r)); case Template.Field.ValueTypes.OcrText: return(Ocr.This.GetTextSurroundedByRectangle(page.ActiveTemplateBitmap, r)); case Template.Field.ValueTypes.OcrTextLines: throw new Exception("To be implemented."); case Template.Field.ValueTypes.OcrCharBoxs: return(Ocr.GetCharBoxsSurroundedByRectangle(page.ActiveTemplateOcrCharBoxs, r)); case Template.Field.ValueTypes.Image: using (Bitmap b = page.GetRectangleFromActiveTemplateBitmap(r.X / Settings.Constants.Image2PdfResolutionRatio, r.Y / Settings.Constants.Image2PdfResolutionRatio, r.Width / Settings.Constants.Image2PdfResolutionRatio, r.Height / Settings.Constants.Image2PdfResolutionRatio)) { return(Page.GetScaledImage2Pdf(b)); } default: throw new Exception("Unknown option: " + valueType); } }
Dictionary <Template.Field.ValueTypes, object> valueTypes2cachedValue = new Dictionary <Template.Field.ValueTypes, object>();//!!!cache Table field values for internal reuse only!!! object getValue_(Template.Field.ValueTypes valueType) { if (ActualRectangle == null || TableFieldActualInfo?.Found == false) { return(null); } switch (valueType) { case Template.Field.ValueTypes.PdfText: { List <string> ss = getPdfTextLines(); return(ss == null ? null : string.Join("\r\n", ss)); } case Template.Field.ValueTypes.PdfTextLines: return(getPdfTextLines()); case Template.Field.ValueTypes.PdfCharBoxs: return(getPdfCharBoxs()); case Template.Field.ValueTypes.OcrText: { List <string> ss = getOcrTextLines(); return(ss == null ? null : string.Join("\r\n", ss)); } case Template.Field.ValueTypes.OcrTextLines: return(getOcrTextLines()); case Template.Field.ValueTypes.OcrCharBoxs: return(getOcrCharBoxs()); case Template.Field.ValueTypes.Image: return(getImage()); case Template.Field.ValueTypes.OcrTextLineImages: return(getOcrTextLineImages()); default: throw new Exception("Unknown option: " + valueType); } }
Dictionary <Template.Field.ValueTypes, object> valueTypes2cachedValue = new Dictionary <Template.Field.ValueTypes, object>();//!!!cache Table field values for internal reuse only!!! object getValue_(Template.Field.ValueTypes valueType) { if (ActualRectangle == null || TableFieldActualInfo?.Found == false) { return(null); } RectangleF r = (RectangleF)ActualRectangle; switch (valueType) { case Template.Field.ValueTypes.PdfText: List <string> ls; if (ActualField.ColumnOfTable == null) { ls = Pdf.GetTextLinesSurroundedByRectangle(page.PdfCharBoxs, r, page.PageCollection.ActiveTemplate.TextAutoInsertSpace); } else { ls = getPdfTextLinesAsTableColumn(); } return(string.Join("\r\n", ls)); case Template.Field.ValueTypes.PdfTextLines: if (ActualField.ColumnOfTable == null) { return(Pdf.GetTextLinesSurroundedByRectangle(page.PdfCharBoxs, r, page.PageCollection.ActiveTemplate.TextAutoInsertSpace)); } return(getPdfTextLinesAsTableColumn()); case Template.Field.ValueTypes.PdfCharBoxs: return(Pdf.GetCharBoxsSurroundedByRectangle(page.PdfCharBoxs, r)); case Template.Field.ValueTypes.OcrText: if (ActualField.ColumnOfTable == null) { return(Ocr.This.GetTextSurroundedByRectangle(page.ActiveTemplateBitmap, r)); } throw new Exception("This code has to be debugged!"); return(string.Join("\r\n", getOcrTextLinesAsTableColumn())); case Template.Field.ValueTypes.OcrTextLines: throw new Exception("This code has to be debugged!"); if (ActualField.ColumnOfTable == null) { return(Regex.Split(Ocr.This.GetTextSurroundedByRectangle(page.ActiveTemplateBitmap, r), "$", RegexOptions.Multiline)); } return(getOcrTextLinesAsTableColumn()); case Template.Field.ValueTypes.OcrCharBoxs: return(Ocr.GetCharBoxsSurroundedByRectangle(page.ActiveTemplateOcrCharBoxs, r)); case Template.Field.ValueTypes.Image: using (Bitmap b = page.GetRectangleFromActiveTemplateBitmap(r.X / Settings.Constants.Image2PdfResolutionRatio, r.Y / Settings.Constants.Image2PdfResolutionRatio, r.Width / Settings.Constants.Image2PdfResolutionRatio, r.Height / Settings.Constants.Image2PdfResolutionRatio)) { return(Page.GetScaledImage2Pdf(b)); } default: throw new Exception("Unknown option: " + valueType); } }
public object GetValue(Template.Field.ValueTypes valueType) { return(getValue(valueType, false)); }