يمكننا إنشاء وإضافة رموز شريطية إلى مستندات PDF كما هو موضح في المنشور السابق. في بعض الحالات ، قد نحتاج إلى اكتشاف وقراءة الرموز الشريطية المضمنة في مستندات PDF برمجيًا. يساعد في فك تشفير المعلومات المضمنة في شكل رموز شريطية ورموز QR من مستندات PDF مثل الفواتير أو الإيصالات أو التقارير. في هذه المقالة ، سوف نتعلم كيفية قراءة الباركود من مستند PDF باستخدام C#.
يجب أن تغطي المقالة المواضيع التالية:
- C# API لقراءة الرمز الشريطي من PDF
- قراءة الرمز الشريطي من ملف PDF
- تحويل PDF إلى صورة وقراءة الرموز الشريطية
- قراءة الرموز الشريطية من PDF باستخدام PngDevice
- استخراج وقراءة الرمز الشريطي من PDF
- البحث عن صورة الرمز الشريطي وقراءتها من ملف PDF
C# API لقراءة الباركود من PDF
سنتبع إجراءً من خطوتين لقراءة الرموز الشريطية من مستندات PDF. أولاً ، سنستخدم واجهة برمجة التطبيقات Aspose.PDF for .NET لتحميل مستند PDF ، ثم سنعرض صفحاته على صور نقطية. بعد ذلك ، سنقرأ الباركود من الصور المعروضة باستخدام Aspose.BarCode for .NET API.
يرجى إما تنزيل DLL من API أو تثبيته باستخدام NuGet.
PM> Install-Package Aspose.BarCode
PM> Install-Package Aspose.PDF
قراءة الباركود من PDF باستخدام C#
تمثل فئة Document من Aspose.PDF API وثيقة PDF. وظيفة ConvertToPNGMemoryStream() لواجهة برمجة التطبيقات تعرض صفحة PDF إلى تدفق ذاكرة PNG. تمكننا فئة BarCodeReader من Aspose.BarCode API من تنفيذ ReadBarCodes عمليات لاكتشاف الرموز الشريطية. تخزن فئة BarCodeResult معلومات الباركود المكتشفة مثل نوع الرمز الشريطي ونص الكود والمنطقة والمعلمات الأخرى.
يمكننا قراءة صور الباركود المضمنة في أي من صفحات مستند PDF باتباع الخطوات الواردة أدناه:
- أولاً ، قم بتحميل مستند PDF باستخدام فئة المستند.
- بعد ذلك ، قم بتكرار كل الصفحات وقم بعرضها على تدفق الذاكرة.
- ثم قم بإنشاء مثيل لفئة BarCodeReader مع كائن دفق.
- بعد ذلك ، قم باستدعاء الأسلوب ReadBarCodes() للحصول على كائن BarCodeResult.
- أخيرًا ، اعرض معلومات الباركود.
يوضح مثال الكود التالي كيفية قراءة رمز شريطي من مستند 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 المُدخَل مع الرموز الشريطية المُستخدم في منشور المدونة هذا.
تحويل PDF إلى صورة وقراءة الرموز الشريطية باستخدام C#
يمكننا قراءة الرموز الشريطية من مستند PDF عن طريق تحويل صفحات PDF إلى صور باستخدام فئة PdfConverter. يسمح بتحويل كل صفحة من ملف PDF إلى صورة ، وبعد ذلك سنقرأ معلومات الباركود من الصورة المحولة.
يمكننا قراءة الرموز الشريطية من صفحات PDF المحولة باتباع الخطوات الواردة أدناه:
- أولاً ، قم بتحميل مستند PDF باستخدام فئة المستند.
- بعد ذلك ، قم بإنشاء مثيل لفئة PdfConverter.
- اختياريًا ، قم بتعيين خيارات العرض مثل BarcodeOptimization.
- ثم قم بتعيين دقة الصورة.
- بعد ذلك ، حدد StartPage و EndPage لعرض نطاق من الصفحات في صور.
- ثم ، قم باستدعاء طريقة DoConvert() لتحويل الصفحات المحددة إلى صور.
- بعد ذلك ، احفظ الصورة للتدفق في حلقة.
- ثم قم بإنشاء مثيل لفئة BarCodeReader مع كائن دفق.
- بعد ذلك ، قم باستدعاء الأسلوب ReadBarCodes() للحصول على كائن BarCodeResult.
- أخيرًا ، اعرض معلومات الباركود.
يوضح مثال الكود التالي كيفية تحويل صفحات PDF إلى صور وقراءة الرموز الشريطية باستخدام C#.
// يوضح مثال الكود التالي كيفية تحويل صفحات 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 نقطة في البوصة هي الدقة القياسية
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 باستخدام جهاز Png في C#
إليك طريقة أخرى مشابهة للطريقة السابقة. الاختلاف الوحيد هو أنه في هذه الطريقة ، سنقوم بتحويل صفحات مستند PDF إلى صور باستخدام فئة PngDevice من API. يسمح بتحويل صفحات مستند PDF إلى صور PNG.
يمكننا قراءة الرموز الشريطية من صفحات PDF المحولة كصور PNG باتباع الخطوات الواردة أدناه:
- أولاً ، قم بتحميل مستند PDF باستخدام فئة المستند.
- بعد ذلك ، قم بإنشاء مثيل لفئة PngDevice.
- بعد ذلك ، مرر عبر جميع الصفحات واستدع طريقة Process() للتقديم في الدفق.
- بعد ذلك ، قم بإنشاء مثيل لفئة BarCodeReader مع كائن الدفق.
- بعد ذلك ، قم باستدعاء الأسلوب ReadBarCodes() للحصول على كائن BarCodeResult.
- أخيرًا ، اعرض معلومات الباركود.
يوضح مثال الكود التالي كيفية تحويل صفحات 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 نقطة في البوصة
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 باستخدام C#
يمكننا أيضًا التعرف على صور الباركود المضمنة في صفحات PDF باستخدام فئة PdfExtractor. يسمح باستخراج الصور من ملف PDF ، وبعد ذلك سنقرأ معلومات الباركود من الصورة المستخرجة.
يمكننا قراءة الباركود من الصور المستخرجة باتباع الخطوات الواردة أدناه:
- أولاً ، قم بإنشاء مثيل لفئة PdfExtractor.
- بعد ذلك ، قم بربط مستند PDF المدخل باستخدام طريقة BindPdf().
- بعد ذلك ، قم بتعيين نطاق الصفحات لاستخراج الصور.
- بعد ذلك ، اتصل بطريقة ExtractImage() لاستخراج الصور.
- بعد ذلك ، احفظ الصورة للتدفق في حلقة.
- بعد ذلك ، قم بإنشاء مثيل لفئة BarCodeReader مع كائن الدفق.
- بعد ذلك ، قم باستدعاء الأسلوب ReadBarCodes() للحصول على كائن BarCodeResult.
- أخيرًا ، اعرض معلومات الباركود.
يوضح مثال الكود التالي كيفية استخراج صورة رمز شريطي وقراءتها من مستند 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#
يمكننا أيضًا العثور على صور الرموز الشريطية واستخراجها من مستندات PDF باستخدام فئة ImagePlacementAbsorber. إنه يمثل كائنًا ماصًا لأجسام وضع الصورة. يقوم بالبحث عن استخدامات الصور ويوفر الوصول إلى نتائج البحث عبر مجموعة ImagePlacements. تساعد هذه الطريقة في التعرف على الرموز الشريطية ذات الدقة الأصلية. قد لا يتعرف على تنسيقات المتجهات بشكل صحيح.
يمكننا العثور على الرموز الشريطية وقراءتها من مستندات PDF باتباع الخطوات الواردة أدناه:
- أولاً ، قم بتحميل مستند PDF باستخدام فئة المستند.
- بعد ذلك ، قم بإنشاء مثيل لفئة ImagePlacementAbsorber.
- ثم ، قم باستدعاء طريقة الزيارة() لكل صفحة في حلقة.
- بعد ذلك ، قم بإجراء حلقة عبر جميع الصور الموجودة في مجموعة ImagePlacements.
- ثم احفظ الصورة في تدفق الذاكرة.
- بعد ذلك ، قم بإنشاء مثيل لفئة BarCodeReader مع كائن الدفق.
- بعد ذلك ، قم باستدعاء الأسلوب ReadBarCodes() للحصول على كائن BarCodeResult.
- أخيرًا ، اعرض معلومات الباركود.
يوضح مثال الكود التالي كيفية البحث عن صور الباركود وقراءتها من ملف 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 في C#. لقد رأينا أيضًا طرقًا وطرقًا مختلفة لاستخراج الصور من مستند PDF وفك تشفير الرموز الشريطية المضمنة برمجيًا. بالإضافة إلى ذلك ، يمكنك معرفة المزيد حول واجهات برمجة التطبيقات باستخدام وثائق Aspose.BarCode و وثائق Aspose.PDF. في حالة وجود أي غموض ، لا تتردد في الاتصال بنا على المنتدى.