خواندن بارکد از PDF در سی شارپ

همانطور که در [پست قبلی] من توضیح داده شده است، می توانیم بارکدها را به اسناد PDF تولید و اضافه کنیم. در موارد خاص، ممکن است لازم باشد بارکدهای تعبیه شده در اسناد PDF را به صورت برنامه‌ریزی شناسایی و مطالعه کنیم. این به رمزگشایی اطلاعات جاسازی شده در قالب بارکد و کدهای QR از اسناد PDF مانند فاکتورها، رسیدها یا گزارش ها کمک می کند. در این مقاله نحوه خواندن بارکد از روی سند PDF با استفاده از سی شارپ را خواهیم آموخت.

مقاله باید موضوعات زیر را پوشش دهد:

  1. C# API برای خواندن بارکد از PDF
  2. خواندن بارکد از PDF
  3. تبدیل PDF به تصویر و خواندن بارکد
  4. خواندن بارکدها از PDF با استفاده از PngDevice
  5. استخراج و خواندن بارکد از PDF
  6. یافتن و خواندن تصویر بارکد از PDF

C# API برای خواندن بارکد از PDF

ما یک روش دو مرحله ای را برای خواندن بارکدها از اسناد PDF دنبال می کنیم. ابتدا از Aspose.PDF for .NET API برای بارگذاری یک سند PDF استفاده می کنیم، سپس صفحات آن را به تصاویر شطرنجی رندر می کنیم. پس از آن، بارکد را از تصاویر رندر شده با استفاده از Aspose.BarCode for .NET API می خوانیم.

لطفاً یا DLL API را دانلود کنید یا با استفاده از NuGet آن را نصب کنید.

PM> Install-Package Aspose.BarCode
PM> Install-Package Aspose.PDF

خواندن بارکد از PDF با استفاده از سی شارپ

کلاس Document API Aspose.PDF یک سند PDF را نشان می دهد. تابع ConvertToPNGMemoryStream() API یک صفحه PDF را به یک جریان حافظه PNG تبدیل می کند. کلاس BarCodeReader از Aspose.BarCode API ما را قادر می سازد تا عملیات ReadBarCodes را برای شناسایی بارکد انجام دهیم. کلاس BarCodeResult اطلاعات بارکد مانند نوع بارکد، متن کد، منطقه و سایر پارامترها را ذخیره می کند.

با دنبال کردن مراحل زیر می توانیم تصاویر بارکد تعبیه شده در هر یک از صفحات سند PDF را بخوانیم:

  1. ابتدا یک سند PDF را با استفاده از کلاس Document بارگذاری کنید.
  2. سپس، تمام صفحات را حلقه بزنید و آنها را به جریان حافظه رندر کنید.
  3. سپس، یک نمونه از کلاس BarCodeReader با یک شی جریان ایجاد کنید.
  4. پس از آن، متد ReadBarCodes() را فراخوانی کنید تا آبجکت BarCodeResult را دریافت کنید.
  5. در نهایت اطلاعات بارکد را نشان دهید.

مثال کد زیر نحوه خواندن بارکد از یک سند PDF را با استفاده از C# نشان می دهد.

// این مثال کد نحوه خواندن بارکد از یک سند PDF را با استفاده از C# نشان می دهد.
// مسیر رسیدن به سند
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// یک سند PDF را بارگیری کنید
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// تمام صفحات PDF را از صفحه 1 شروع کنید
for (int i = 1; i <= pdfDoc.Pages.Count; ++i)
{
    // صفحه PDF را به جریان ارائه دهید
    MemoryStream ms = pdfDoc.Pages[i].ConvertToPNGMemoryStream();
    ms.Position = 0;

    // بارکدها را از تصویر رندر شده صفحه تشخیص دهید
    BarCodeReader reader = new BarCodeReader(ms);
    
    // نمایش نتایج
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
        Console.WriteLine("Codetext found: " + result.CodeText);
        Console.WriteLine("Symbology: " + result.CodeType);
        Console.WriteLine("-------------------------------");
    }
}
Codetext found: Aspose.Barcode Pdf417 Example
Symbology: Pdf417
-------------------------------
Codetext found: Aspose.Barcode QR Example
Symbology: QR
-------------------------------
Codetext found: Aspose.Barcode DataMatrix Example
Symbology: DataMatrix
-------------------------------

لطفاً [دانلود سند PDF ورودی با بارکد17 مورد استفاده در این پست وبلاگ.

تبدیل PDF به تصویر و خواندن بارکد با استفاده از سی شارپ

با تبدیل صفحات PDF به تصاویر با استفاده از کلاس PdfConverter می توانیم بارکدها را از سند PDF بخوانیم. این اجازه می دهد تا هر صفحه از یک فایل PDF را به یک تصویر تبدیل کنید و سپس اطلاعات بارکد را از تصویر تبدیل شده بخوانیم.

با دنبال کردن مراحل زیر می توانیم بارکدها را از صفحات PDF تبدیل شده بخوانیم:

  1. ابتدا یک سند PDF را با استفاده از کلاس Document بارگذاری کنید.
  2. سپس یک نمونه از کلاس PdfConverter ایجاد کنید.
  3. به صورت اختیاری، گزینه های رندر مانند BarcodeOptimization را تنظیم کنید.
  4. سپس، وضوح تصویر را تنظیم کنید.
  5. در مرحله بعد، StartPage و EndPage را مشخص کنید تا طیف وسیعی از صفحات را به تصاویر تبدیل کنید.
  6. سپس، متد DoConvert() را فراخوانی کنید تا صفحات انتخاب شده را به تصاویر تبدیل کنید.
  7. در مرحله بعد، تصویر را برای پخش در یک حلقه ذخیره کنید.
  8. سپس، یک نمونه از کلاس BarCodeReader با شی جریان ایجاد کنید.
  9. پس از آن، متد ReadBarCodes() را فراخوانی کنید تا آبجکت BarCodeResult را دریافت کنید.
  10. در نهایت اطلاعات بارکد را نشان دهید.

مثال کد زیر نحوه تبدیل صفحات PDF به تصاویر و خواندن بارکد با استفاده از سی شارپ را نشان می دهد.

// مثال کد زیر نحوه تبدیل صفحات PDF به تصاویر با تبدیل PDF و خواندن بارکد با استفاده از C# را نشان می دهد.
// مسیر رسیدن به سند
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// یک سند PDF را بارگیری کنید
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// یک PdfConvertor را راه اندازی کنید
Aspose.Pdf.Facades.PdfConverter pdfConverter = new Aspose.Pdf.Facades.PdfConverter(pdfDoc);

// تنظیم بهینه سازی بارکد
pdfConverter.RenderingOptions.BarcodeOptimization = true;

// تنظیم وضوح صفحه
// 300 dpi وضوح استاندارد است
pdfConverter.Resolution = new Aspose.Pdf.Devices.Resolution(300);

// همه صفحات را به شکل تصویر تنظیم کنید
pdfConverter.StartPage = 1; //starts from page 1
pdfConverter.EndPage = pdfConverter.Document.Pages.Count;

// صفحات انتخاب شده را در تصاویر رندر کنید
pdfConverter.DoConvert();
while (pdfConverter.HasNextImage())
{
    // تصویر جریان صفحه فعلی را به حافظه ارائه دهید
    MemoryStream ms = new MemoryStream();
    pdfConverter.GetNextImage(ms, ImageFormat.Png);
    ms.Position = 0;

    // بارکدها را از تصویر رندر شده صفحه تشخیص دهید
    BarCodeReader reader = new BarCodeReader(ms);
    
    // نمایش نتایج
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
        Console.WriteLine("Codetext found: " + result.CodeText);
        Console.WriteLine("Symbology: " + result.CodeType);
        Console.WriteLine("-------------------------------");
    }
}

خواندن بارکد از PDF با استفاده از PngDevice در سی شارپ

در اینجا روش دیگری مشابه روش قبلی وجود دارد. تنها تفاوت این است که در این روش، صفحات سند PDF را با استفاده از کلاس PngDevice API به تصویر تبدیل می کنیم. این اجازه می دهد تا صفحات سند PDF را به تصاویر PNG تبدیل کنید.

با دنبال کردن مراحل زیر می‌توانیم بارکدهای صفحات PDF تبدیل‌شده را به‌عنوان تصاویر PNG بخوانیم:

  1. ابتدا یک سند PDF را با استفاده از کلاس Document بارگذاری کنید.
  2. سپس یک نمونه از کلاس PngDevice ایجاد کنید.
  3. سپس، تمام صفحات را حلقه بزنید و متد Process() را برای رندر در جریان فراخوانی کنید.
  4. بعد، یک نمونه از کلاس BarCodeReader با شی جریان ایجاد کنید.
  5. پس از آن، متد ReadBarCodes() را فراخوانی کنید تا آبجکت BarCodeResult را دریافت کنید.
  6. در نهایت اطلاعات بارکد را نشان دهید.

مثال کد زیر نحوه تبدیل صفحات PDF به تصاویر PNG و خواندن بارکد با استفاده از C# را نشان می دهد.

// مثال کد زیر نحوه تبدیل صفحات PDF به تصاویر با PngDevice و خواندن بارکدها با استفاده از C# را نشان می دهد.
// مسیر رسیدن به سند
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// یک سند PDF را بارگیری کنید
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// دستگاه PNG با وضوح استاندارد 300 dpi ایجاد کنید
Aspose.Pdf.Devices.PngDevice pngDevice = new Aspose.Pdf.Devices.PngDevice(new Aspose.Pdf.Devices.Resolution(300));

// تمام صفحات PDF را از صفحه 1 شروع کنید
for (int i = 1; i <= pdfDoc.Pages.Count; ++i)
{
    // صفحه PDF را به جریان ارائه دهید
    MemoryStream ms = new MemoryStream();
    pngDevice.Process(pdfDoc.Pages[i], ms);
    ms.Position = 0;

    // بارکد را از تصویر رندر شده صفحه تشخیص دهید
    BarCodeReader reader = new BarCodeReader(ms);

    // نمایش نتایج
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
        Console.WriteLine("Codetext found: " + result.CodeText);
        Console.WriteLine("Symbology: " + result.CodeType);
        Console.WriteLine("-------------------------------");
    }
}

استخراج و خواندن بارکد از PDF با استفاده از سی شارپ

ما همچنین می توانیم تصاویر بارکد تعبیه شده در صفحات PDF را با استفاده از کلاس PdfExtractor تشخیص دهیم. این امکان استخراج تصاویر از PDF را فراهم می کند و سپس اطلاعات بارکد را از تصویر استخراج شده می خوانیم.

با دنبال کردن مراحل زیر می توانیم بارکدهای تصاویر استخراج شده را بخوانیم:

  1. ابتدا یک نمونه از کلاس PdfExtractor ایجاد کنید.
  2. سپس، سند PDF ورودی را با استفاده از روش BindPdf() پیوند دهید.
  3. سپس، محدوده صفحه را برای استخراج تصویر تنظیم کنید.
  4. در مرحله بعد، متد ExtractImage() را برای استخراج تصاویر فراخوانی کنید.
  5. سپس، تصویر را برای پخش در یک حلقه ذخیره کنید.
  6. بعد، یک نمونه از کلاس BarCodeReader با شی جریان ایجاد کنید.
  7. پس از آن، متد ReadBarCodes() را فراخوانی کنید تا آبجکت BarCodeResult را دریافت کنید.
  8. در نهایت اطلاعات بارکد را نشان دهید.

مثال کد زیر نحوه استخراج و خواندن یک تصویر بارکد از یک سند PDF را با استفاده از C# نشان می دهد.

// مثال کد زیر نحوه تبدیل صفحات PDF به تصاویر با PdfExtractor و خواندن بارکد با استفاده از C# را نشان می دهد.
// مسیر رسیدن به سند
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// یک سند PDF را صحافی کنید
Aspose.Pdf.Facades.PdfExtractor pdfExtractor = new Aspose.Pdf.Facades.PdfExtractor();
pdfExtractor.BindPdf(file);

// محدوده صفحه را برای استخراج تصویر تنظیم کنید
pdfExtractor.StartPage = 1;
pdfExtractor.EndPage = 3;

// تصاویر را استخراج کنید
pdfExtractor.ExtractImage();

// تصاویر را برای پخش در یک حلقه ذخیره کنید
while (pdfExtractor.HasNextImage())
{
  // ذخیره تصویر برای پخش جریانی
  MemoryStream imageStream = new MemoryStream();
  pdfExtractor.GetNextImage(imageStream);
  imageStream.Position = 0;

  // بارکدها را از جریان تصویر بالا تشخیص دهید
  BarCodeReader reader = new BarCodeReader(imageStream);
  foreach (BarCodeResult result in reader.ReadBarCodes())
  {
      Console.WriteLine("Codetext found: " + result.CodeText);
      Console.WriteLine("Symbology: " + result.CodeType);
      Console.WriteLine("-------------------------------");
  }
}

پیدا کردن و خواندن تصاویر بارکد از PDF با استفاده از C#

همچنین می‌توانیم با استفاده از کلاس ImagePlacementAbsorber تصاویر بارکد را از اسناد PDF پیدا و استخراج کنیم. این یک شی جاذب از اشیاء قرار دادن تصویر را نشان می دهد. این جستجوی استفاده از تصویر را انجام می دهد و از طریق مجموعه ImagePlacements به نتایج جستجو دسترسی پیدا می کند. این روش به تشخیص بارکد با وضوح اصلی کمک می کند. ممکن است فرمت های برداری را به درستی تشخیص ندهد.

با دنبال کردن مراحل زیر می‌توانیم بارکدها را از اسناد PDF پیدا کرده و بخوانیم:

  1. ابتدا یک سند PDF را با استفاده از کلاس Document بارگذاری کنید.
  2. سپس یک نمونه از کلاس ImagePlacementAbsorber ایجاد کنید.
  3. سپس، متد Visit() را برای هر صفحه در یک حلقه فراخوانی کنید.
  4. سپس، تمام تصاویر موجود در مجموعه ImagePlacements را مرور کنید.
  5. سپس، تصویر را در جریان حافظه ذخیره کنید.
  6. بعد، یک نمونه از کلاس BarCodeReader با شی جریان ایجاد کنید.
  7. پس از آن، متد ReadBarCodes() را فراخوانی کنید تا آبجکت BarCodeResult را دریافت کنید.
  8. در نهایت اطلاعات بارکد را نشان دهید.

مثال کد زیر نحوه یافتن و خواندن تصاویر بارکد را از یک PDF با استفاده از C# نشان می دهد.

// این مثال کد نحوه خواندن بارکد از یک سند PDF را با استفاده از ImagePlacementAbsorber نشان می دهد.
// مسیر رسیدن به سند
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// یک سند PDF را بارگیری کنید
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// ImagePlacementAbsorber را راه اندازی کنید
Aspose.Pdf.ImagePlacementAbsorber imagePlacementAbsorber = new Aspose.Pdf.ImagePlacementAbsorber();

// تمام صفحات PDF در سند را از صفحه 1 پردازش کنید
for (int i = 1; i <= pdfDoc.Pages.Count; ++i)
{
    // از صفحه ایجاد یک استخراج کننده تصویر دیدن کنید
    imagePlacementAbsorber.Visit(pdfDoc.Pages[i]);

    // تمام تصاویر را از صفحه PDF استخراج کنید
    foreach (Aspose.Pdf.ImagePlacement imagePlacement in imagePlacementAbsorber.ImagePlacements)
    {
        // یک تصویر را از صفحه PDF به جریان تبدیل کنید
        MemoryStream ms = new MemoryStream();
        imagePlacement.Save(ms, ImageFormat.Png);
        ms.Position = 0;

        // بارکد را از تصویر استخراج شده از صفحه تشخیص دهید
        BarCodeReader reader = new BarCodeReader(ms);

        // نمایش نتایج
        foreach (BarCodeResult result in reader.ReadBarCodes())
        {
            Console.WriteLine("Codetext found: " + result.CodeText);
            Console.WriteLine("Symbology: " + result.CodeType);
            Console.WriteLine("-------------------------------");
        }
    }
}

مجوز رایگان دریافت کنید

شما می توانید یک مجوز موقت رایگان دریافت کنید تا کتابخانه ها را بدون محدودیت ارزیابی امتحان کنید.

نتیجه

در این مقاله با نحوه خواندن بارکد از اسناد PDF در سی شارپ آشنا شدیم. ما همچنین رویکردها و روش های مختلفی برای استخراج تصاویر از یک سند PDF و رمزگشایی بارکدهای تعبیه شده به صورت برنامه ای دیده ایم. علاوه بر این، می‌توانید با استفاده از اسناد برای Aspose.BarCode و اسناد برای Aspose.PDF درباره APIها اطلاعات بیشتری کسب کنید. در صورت وجود هرگونه ابهام، لطفاً با ما در تالار گفتمان تماس بگیرید.

همچنین ببینید