How to Verify Documents in .NET: Detect Corruption, Extract Text, Check Blank Files, and Identify Document Types
In modern software applications such as HRMS, Hospital Management Systems, Banking Platforms, Document Management Systems (DMS), Visitor Management Systems, and Government Portals, document verification is a critical feature. Before storing or processing any uploaded file, the system should verify that the document is genuine, readable, not corrupted, and contains meaningful information.
This article explains how to build a complete document verification pipeline in .NET that can validate uploaded files, extract their content, detect corruption, identify document types, and prepare them for further processing.
Why Document Verification Is Important
Many applications allow users to upload documents such as Aadhaar Cards, PAN Cards, Passports, Salary Slips, Invoices, Medical Reports, and Bank Statements. Without proper validation, users may accidentally or intentionally upload:
- Corrupted PDF or Office files
- Empty or blank documents
- Wrong file formats
- Password-protected files
- Scanned images without readable text
- Invalid or fake documents
A proper verification system ensures that only valid documents are accepted.
Complete Document Verification Workflow
A robust document verification system typically follows these steps:
- Validate the uploaded file.
- Verify the file signature (Magic Number).
- Detect corrupted documents.
- Extract readable text.
- Check whether the document is blank.
- Detect the document type.
- Extract important information.
- Store verification results.
Step 1: Validate the Uploaded File
The first step is to ensure that the uploaded file exists and is not empty.
Things to verify:
- File exists
- File size is greater than zero
- Allowed extension
- Maximum file size
- Valid MIME type
Example supported formats:
- DOC
- DOCX
- XLS
- XLSX
- TXT
- JPG
- PNG
- JPEG
Step 2: Verify the File Signature (Magic Bytes)
Never trust the file extension alone.
A malicious user can rename:
virus.exeto
invoice.pdfAlthough the extension is PDF, the internal file signature is different.
Instead, verify the file header (Magic Bytes).
Example:
| File Type | Signature |
|---|---|
| PNG | 89 50 4E 47 |
| JPG | FF D8 FF |
| ZIP/DOCX | PK |
This prevents fake uploads.
Step 3: Detect Corrupted Documents
A document may have the correct extension but still be unreadable.
Examples:
- Broken PDF
- Damaged Word document
- Corrupted Excel workbook
The easiest way to detect corruption is to open the file using an appropriate library.
For example:
- PDF → PdfPig or iText7
- DOCX → Open XML SDK
- Excel → ClosedXML
If the library throws an exception while opening the file, it is most likely corrupted.
Step 4: Extract Text from the Document
Once the file is validated, extract its content.
Different document types require different libraries.
Libraries:
- PdfPig
- iText7
- PDFium
Word Documents
Libraries:
- Open XML SDK
- Aspose.Words
Excel Files
Libraries:
- ClosedXML
- NPOI
Text Files
Use standard .NET file reading.
Images
Scanned documents require OCR.
Popular OCR engines include:
- Tesseract OCR
- Azure AI Vision
- Google Cloud Vision
- AWS Textract
OCR converts images into searchable text.
Step 5: Detect Blank Documents
A file may not be empty but still contain no useful information.
Examples include:
- Blank PDF
- White scanned page
- Empty Word document
After extracting text, trim whitespace and check if any meaningful content remains.
If the extracted text is empty or contains only spaces and line breaks, classify the document as blank.
Step 6: Detect the Document Type
Once text is extracted, identify the type of document by searching for keywords or using AI classification.
Examples:
Aadhaar Card
Keywords:
- Government of India
- Aadhaar
- Unique Identification Authority of India
PAN Card
Keywords:
- Income Tax Department
- Permanent Account Number
Passport
Keywords:
- Passport
- Republic of India
Driving Licence
Keywords:
- Driving Licence
- Transport Department
Invoice
Keywords:
- Invoice
- GSTIN
- Tax Invoice
Salary Slip
Keywords:
- Salary Slip
- Employee Code
- Basic Salary
Bank Statement
Keywords:
- Bank Statement
- Account Number
- Opening Balance
Step 7: Extract Important Information
Instead of storing only raw text, extract structured information.
Examples include:
Aadhaar Card
- Name
- Aadhaar Number
- Date of Birth
- Gender
PAN Card
- PAN Number
- Name
- Father’s Name
Passport
- Passport Number
- Nationality
- Date of Issue
- Date of Expiry
Invoice
- Invoice Number
- GST Number
- Invoice Date
- Total Amount
Bank Statement
- Account Number
- IFSC Code
- Statement Period
This structured data can be used for automatic verification and reporting.
Step 8: Save Verification Results
After processing, store the verification details in the database.
Example fields:
| Field | Description |
|---|---|
| File Name | Uploaded file |
| File Type | PDF/DOCX/Image |
| Is Valid | Yes/No |
| Is Corrupted | Yes/No |
| Is Blank | Yes/No |
| Document Type | Aadhaar, PAN, Invoice |
| Extracted Text | Full OCR/Text |
| Confidence Score | AI confidence |
| Uploaded By | User ID |
| Upload Date | Timestamp |
Recommended Libraries for .NET
| Purpose | Library |
|---|---|
| PDF Reading | PdfPig |
| PDF Processing | iText7 |
| Word Documents | Open XML SDK |
| Excel Files | ClosedXML |
| Legacy Office Files | NPOI |
| OCR | Tesseract OCR |
| Cloud OCR | Azure AI Vision |
| OCR & Forms | AWS Textract |
| AI Document Analysis | Azure Document Intelligence |
Common Challenges
Password-Protected PDFs
Detect password protection and prompt the user for the password or reject the upload.
Scanned Documents
Use OCR to extract text from image-based PDFs and photos.
Low-Quality Images
Improve readability using image preprocessing techniques such as noise reduction, contrast enhancement, and deskewing before OCR.
Multiple Languages
Choose OCR engines that support multilingual recognition if your users upload documents in different languages.
Best Practices
- Validate file signatures instead of relying only on extensions.
- Enforce file size limits.
- Scan uploaded files for malware.
- Reject corrupted documents.
- Reject blank documents.
- Perform OCR on scanned images.
- Store extracted text for search and indexing.
- Encrypt sensitive documents at rest.
- Log all verification events for auditing.
- Use AI classification for higher accuracy.
Real-World Applications
A document verification system can be integrated into:
- HRMS and Employee Onboarding
- Hospital Information Systems
- Banking and KYC Verification
- Insurance Claims Processing
- Government e-Governance Portals
- Visitor Management Systems
- Educational Admission Portals
- Loan Processing Applications
- Property Registration Systems
- Legal Document Management Systems
Conclusion
Document verification is much more than checking a file extension. A reliable verification pipeline should validate the file structure, detect corruption, extract text, identify blank or empty documents, classify the document type, and extract key information for downstream workflows.
By combining .NET with libraries such as PdfPig, Open XML SDK, ClosedXML, and OCR solutions like Tesseract, Azure AI Vision, or AWS Textract, developers can build secure, scalable, and intelligent document verification systems that improve data quality, reduce fraud, and streamline business processes.




