Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
            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);
            }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
            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);
                }
            }
Ejemplo n.º 5
0
            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);
                }
            }
Ejemplo n.º 6
0
            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);
                }
            }
Ejemplo n.º 7
0
 public object GetValue(Template.Field.ValueTypes valueType)
 {
     return(getValue(valueType, false));
 }