API رایگان C# .NET برای استخراج متن PDF و تجزیه و تحلیل
یک کتابخانه پیشرو متنباز .NET برای استخراج متن، تصاویر، فراداده و اطلاعات ساختار PDF از فایلهای PDF به راحتی. صفحات، جداول، متن و اشکال جدید را به PDFها اضافه کنید.
کتابخانه PdfPig چیست؟
PdfPig یک کتابخانه متنباز .NET است که برای خواندن، تجزیه و استخراج محتوا از فایلهای PDF در C# طراحی شده است. این کتابخانه به عنوان یک پورت از Apache PDFBox برای اکوسیستم .NET توسعه یافته و بهطور گستردهای برای استخراج متن PDF، تحلیل اسناد و پردازش سطح پایین PDF استفاده میشود. این کتابخانه از .NET Standard و چندین نسخه .NET پشتیبانی میکند، که آن را برای محیطهای توسعه مدرن بسیار انعطافپذیر میسازد. این کتابخانه برای ایندکسگذاری اسناد، موتورهای جستجو، پیشپردازش اسناد AI/ML، پسپردازش OCR، خودکارسازی فاکتور، ابزارهای دسترسیپذیری PDF و سیستمهای استخراج داده بسیار مفید است.
فایلهای PDF در همه جا هستند — قراردادها، گزارشها، فاکتورها، کتابهای الکترونیکی، صورتحسابهای بانکی، مقالات پژوهشی و فرمها. استخراج اطلاعات ساختاریافته از PDFها اغلب دشوار است زیرا PDF عمدتاً یک فرمت ارائه است، نه یک فرمت سند معنایی. PdfPig این مشکل را با ارائه دسترسی به متن خام و کلمات، موقعیت کاراکترها و جعبههای محدودکننده، اطلاعات فونت و استایل، تصاویر و متادیتا و جزئیات چیدمان سند برای توسعهدهندگان ساده میکند. برخلاف بسیاری از کتابخانههای PDF که عمدتاً بر تولید PDF متمرکز هستند، PdfPig در خواندن اسناد PDF موجود تخصص دارد. این باعث میشود که برای توسعهدهندگانی که موتورهای جستجو، خطوط لوله OCR، تجزیهکنندههای فاکتور، تحلیلگرهای سند، ابزارهای انطباق یا سیستمهای استخراج محتوا میسازند، گزینهای عالی باشد.
شروع کار با PdfPig
کتابخانه PdfPig به صورت بسته NuGet در دسترس است. بنابراین به شدت توصیه میشود از NuGet برای نصب PdfPig در پروژه خود استفاده کنید. لطفاً برای نصب موفقیتآمیز، فرمان زیر را به کار ببرید.
نصب PdfPig از طریق NuGet Package Manager
// Package Manager
Install-Package PdfPig
// .NET CLI
dotnet add package PdfPig
همچنین میتوانید آن را بهصورت دستی نصب کنید؛ فایلهای آخرین نسخه را مستقیماً از مخزن GitHub دانلود کنید.
استخراج متن از اسناد PDF با استفاده از .NET
یکی از رایجترین موارد استفاده از PdfPig استخراج متن ساده از اسناد PDF است. توسعهدهندگان نرمافزار میتوانند یک PDF را باز کرده و متن را صفحه به صفحه بخوانند یا کل محتوا را استخراج کنند. این بهویژه برای ایندکسگذاری جستجو، اسکن کلیدواژهها و تحلیل محتوا مفید است. در اینجا یک مثال ساده آورده شده است که نشان میدهد چگونه توسعهدهندگان نرمافزار میتوانند متن را از اسناد PDF در برنامههای C# .NET استخراج کنند. ابتدا فایل PDF را باز میکند و از طریق تمام صفحات تکرار میشود، سپس محتوای متن استخراجشده را میخواند.
چگونه متن را از اسناد PDF با استفاده از API C# استخراج کنیم؟
using UglyToad.PdfPig;
using (var document = PdfDocument.Open("sample.pdf"))
{
foreach (var page in document.GetPages())
{
string text = page.Text;
Console.WriteLine(text);
}
}
فرمهای تعاملی و استخراج فایلهای جاسازیشده
کتابخانه متنباز PdfPig بهصورت بومی از استخراج فرمهای تعاملی Acrobat (AcroForms) و خواندن فایلهای مخفی در پیوستهای PDF پشتیبانی میکند. این امکان را به توسعهدهندگان میدهد تا تعریفهای فرم را بهصورت سراسری بررسی کنند، از طریق عناصر فرم تعاملی تایپشده (مانند چکباکسها، فیلدهای متنی یا دکمههای فشاردهی) تکرار کنند و به دادههای بایت خام زیرین فایلهای جاسازیشده در حاشیهنویسیهای سند دسترسی پیدا کنند تا یکپارچگی سیستم بهصورت بیوقفه فراهم شود.
چگونه دادههای فرم تعاملی را با استفاده از کتابخانه C# .NET استخراج کنیم؟
using System;
using System.Collections.Generic;
using UglyToad.PdfPig;
using UglyToad.PdfPig.AcroForms;
class Program
{
static void ExtractInteractiveContent(string pdfPath)
{
using (PdfDocument document = PdfDocument.Open(pdfPath))
{
// Extracting Interactive Form Data
if (document.TryGetForm(out AcroForm form))
{
foreach (var field in form.Fields)
{
Console.WriteLine($"Form Field Name: {field.Information.Name} | Type: {field.Type}");
}
}
// Extracting Embedded Documents/Attachments
if (document.Advanced.TryGetEmbeddedFiles(out IReadOnlyList embeddedFiles))
{
foreach (var file in embeddedFiles)
{
Console.WriteLine($"Found Attachment: {file.Name} ({file.Bytes.Count} bytes)");
// File.WriteAllBytes(file.Name, file.Bytes.ToArray()); // Save attachment locally
}
}
}
}
}
ادغام چندفایلی PDF بهصورت یکپارچه با C#
فراتر از استخراج محتوا، PdfPig ابزارهای مدیریت سند سادهای را ارائه میدهد. با استفاده از کلاس PdfMerger، توسعهدهندگان میتوانند ساختارهای PDF مستقل جداگانه را در یک آرایه خروجی یکپارچه از بایتهای فایل ترکیب کنند. این روش راهی مؤثر برای الحاق گزارشهای برنامهنویسی، فاکتورها یا اسناد صورتحساب مشتریان بدون افزودن وابستگیهای سنگین و خارجی به خط لوله .NET شما فراهم میکند. مثال زیر نشان میدهد که چگونه کاربران میتوانند چندین سند PDF را در برنامههای .NET ترکیب کنند.
چگونه چندین فایل PDF را در برنامههای C# .NET ادغام کنیم؟
using System.IO;
using UglyToad.PdfPig.Writer;
class Program
{
static void MergeDocuments(string firstPdf, string secondPdf, string outputPdf)
{
// Consolidate files into a single continuous byte sequence
byte[] mergedFileBytes = PdfMerger.Merge(firstPdf, secondPdf);
// Output the combined file stream directly to disk
File.WriteAllBytes(outputPdf, mergedFileBytes);
}
}
خواندن متادیتا، فرمها و حاشیهنویسیهای PDF
فراتر از استخراج متن، کتابخانه متنباز PdfPig ویژگیهایی را شامل میشود که متادیتای سند (عنوان، نویسنده، تولیدکننده)، فیلدهای فرم تعاملی، پیوندهای ابرمتنی و نشانکها را نمایش میدهد. این برای سیستمهای طبقهبندی سند، پردازش خودکار فرمها و ایندکسگذاری محتوا که به هر دو محتوا و زمینه نیاز دارید، بینهایت ارزشمند است.