/// <summary>
        /// Ejecuta el aprendizaje de patrones sobre unos
        /// metadatos de factura y datos leídos de pdf previos.
        /// </summary>
        public void ExecutePatternsLearning()
        {
            if (string.IsNullOrEmpty(Pdf.DocID))
            {
                throw new InvalidOperationException("Es necesario un valor Pdf.DocID.");
            }

            PdfCompareResult compareResult = PdfCompare.Compare(new BusinessInvoiceHierarchySet(), Pdf, Invoice);

            PdfTagPatternFactory.Save(compareResult);
        }
        /// <summary>
        /// Intenta la extracción de datos mediante patrones
        /// aprendidos.
        /// </summary>
        public void Extract()
        {
            try
            {
                Store = PdfTagPatternFactory.GetStore(Pdf);
            }
            catch
            {
            }

            if (Store != null)
            {
                ExtractionResult = Store.Extract(Pdf);
                Invoice          = ExtractionResult.Metadata as InvoiceMetadata;
            }
        }
Beispiel #3
0
        /// <summary>
        /// Intenta la extracción de datos mediante patrones aprendidos.
        /// Realiza una comparación entre metadata ya revisado y el texto extraído por los patrones.
        /// </summary>
        public void ExtractWithCheck(IMetadata metadata)
        {
            try
            {
                Store = PdfTagPatternFactory.GetStore(Pdf);
            }
            catch
            {
            }

            CheckResult = new PdfCheckResult(Pdf, metadata);

            if (Store != null)
            {
                Console.WriteLine("Extrayendo");
                CheckResult.ErrorPatterns = Store.ExtractToCheck(CheckResult);

                Console.WriteLine("Guardando");
                PdfTagPatternFactory.SaveCheck(CheckResult);
            }
        }