ไทย

แยกข้อมูลจากใบแจ้งหนี้หรือใบเสร็จรับเงินใน C#

ใบแจ้งหนี้และใบเสร็จรับเงินเป็นเอกสารที่ใช้ในการบันทึกธุรกรรมในรูปแบบเฉพาะเมื่อมีการซื้อหรือขายบริการหรือสินค้าที่เกี่ยวข้อง สิ่งต่าง ๆ เปลี่ยนไปเป็นดิจิทัลและด้วยความนิยมในการซื้อของออนไลน์ ใบแจ้งหนี้ดิจิทัลจึงถูกนำมาใช้อย่างแพร่หลาย การประมวลผลใบแจ้งหนี้ดิจิทัลจำนวนหนึ่งและการดึงข้อมูลด้วยตนเองนั้นเป็นกระบวนการที่ซับซ้อนและใช้เวลานาน ดังนั้น คุณต้องการวิธีที่เร็วกว่าและมีประสิทธิภาพสำหรับกรณีดังกล่าว ดังนั้นในบทความนี้ ฉันจะแสดงวิธีดึงข้อมูลจากใบแจ้งหนี้หรือใบเสร็จในรูปแบบ PDF โดยใช้โปรแกรมในภาษา C# โดยใช้ GroupDocs.Parser for .NET API เวิร์กโฟลว์สำหรับการดึงข้อมูลจากใบแจ้งหนี้ PDF ต่อไปนี้เป็นเวิร์กโฟลว์ของวิธีการแยกข้อมูลจากใบแจ้งหนี้ PDF โดยใช้ GroupDocs.Parser for .NET สร้างพารามิเตอร์ของตารางเพื่อแยกข้อมูลจากตาราง สร้างรายการเทมเพลตสำหรับการดึงข้อมูลจากฟิลด์ แยกวิเคราะห์ใบแจ้งหนี้ตามเทมเพลตที่กำหนด แยกข้อมูล ใบแจ้งหนี้ ต่อไปนี้คือภาพหน้าจอของตัวอย่างใบแจ้งหนี้ PDF ที่ฉันจะใช้สำหรับการแยกข้อมูล คุณสามารถดาวน์โหลดใบแจ้งหนี้นี้ได้จากพื้นที่เก็บข้อมูล GitHub รหัส สร้างเทมเพลตสำหรับใบแจ้งหนี้ที่กำหนด (อ่านเพิ่มเติม เกี่ยวกับเทมเพลต) // สร้างพารามิเตอร์ตัวตรวจจับสำหรับตาราง "รายละเอียด" TemplateTableParameters detailsTableParameters = new TemplateTableParameters(new Rectangle(new Point(35, 320), new Size(530, 55)), null); // สร้างพารามิเตอร์ตัวตรวจจับสำหรับตาราง "สรุป" TemplateTableParameters summaryTableParameters = new TemplateTableParameters(new Rectangle(new Point(330, 385), new Size(220, 65)), null); // สร้างคอลเลกชันของรายการเทมเพลต TemplateItem[] templateItems = new TemplateItem[] { new TemplateField(new TemplateFixedPosition(new Rectangle(new Point(35, 135), new Size(100, 10))), "FromCompany"), new TemplateField(new TemplateFixedPosition(new Rectangle(new Point(35, 150), new Size(100, 35))), "FromAddress"), new TemplateField(new TemplateFixedPosition(new Rectangle(new Point(35, 190), new Size(150, 2))), "FromEmail"), new TemplateField(new TemplateFixedPosition(new Rectangle(new Point(35, 250), new Size(100, 2))), "ToCompany"), new TemplateField(new TemplateFixedPosition(new Rectangle(new Point(35, 260), new Size(100, 15))), "ToAddress"), new TemplateField(new TemplateFixedPosition(new Rectangle(new Point(35, 290), new Size(150, 2))), "ToEmail"), new TemplateField(new TemplateRegexPosition("Invoice Number"), "InvoiceNumber"), new TemplateField(new TemplateLinkedPosition( "InvoiceNumber", new Size(200, 15), new TemplateLinkedPositionEdges(false, false, true, false)), "InvoiceNumberValue"), new TemplateField(new TemplateRegexPosition("Order Number"), "InvoiceOrder"), new TemplateField(new TemplateLinkedPosition( "InvoiceOrder", new Size(200, 15), new TemplateLinkedPositionEdges(false, false, true, false)), "InvoiceOrderValue"), new TemplateField(new TemplateRegexPosition("Invoice Date"), "InvoiceDate"), new TemplateField(new TemplateLinkedPosition( "InvoiceDate", new Size(200, 15), new TemplateLinkedPositionEdges(false, false, true, false)), "InvoiceDateValue"), new TemplateField(new TemplateRegexPosition("Due Date"), "DueDate"), new TemplateField(new TemplateLinkedPosition( "DueDate", new Size(200, 15), new TemplateLinkedPositionEdges(false, false, true, false)), "DueDateValue"), new TemplateField(new TemplateRegexPosition("Total Due"), "TotalDue"), new TemplateField(new TemplateLinkedPosition( "TotalDue", new Size(200, 15), new TemplateLinkedPositionEdges(false, false, true, false)), "TotalDueValue"), new TemplateTable(detailsTableParameters, "details", null), new TemplateTable(summaryTableParameters, "summary", null) }; // สร้างเทมเพลตเอกสาร Template template = new Template(templateItems); แยกวิเคราะห์ใบแจ้งหนี้และแยกข้อมูล // สร้างอินสแตนซ์ของคลาส Parser using (Parser parser = new Parser("invoice.
· อุสมาน อาซิซ · 2 min