using System.IO; using System.Text.RegularExpressions; using ComplianceNFs.Core.Entities; using ComplianceNFs.Core.Ports; namespace ComplianceNFs.Infrastructure.Parsers { public class PdfParser : IPdfParser { public ParsedInvoice Parse(Stream pdfStream) { // Minimal demo: just read bytes as text (replace with real PDF parsing in production) using var ms = new MemoryStream(); pdfStream.CopyTo(ms); var text = System.Text.Encoding.UTF8.GetString(ms.ToArray()); // Example: extract CNPJ and values using regex (replace with real patterns) var cnpjComp = Regex.Match(text, @"CNPJComp: (\d{14})").Groups[1].Value; var cnpjVend = Regex.Match(text, @"CNPJVend: (\d{14})").Groups[1].Value; var montNF = decimal.TryParse(Regex.Match(text, @"MontNF: ([\d,.]+)").Groups[1].Value, out var m) ? m : 0; var precNF = decimal.TryParse(Regex.Match(text, @"PrecNF: ([\d,.]+)").Groups[1].Value, out var p) ? p : 0; return new ParsedInvoice { CnpjComp = cnpjComp, CnpjVend = cnpjVend, MontNF = montNF, PrecNF = precNF // ...fill other fields as needed }; } } }