بارکد را از PDF در جاوا بخوانید

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

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

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

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

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

لطفاً JAR APIها را دانلود کنید یا پیکربندی pom.xml زیر را در یک برنامه جاوا مبتنی بر Maven اضافه کنید.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-barcode</artifactId>
    <version>22.8</version>
</dependency>
    
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>22.8</version>
</dependency>

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

Aspose.PDF API کلاس Document را ارائه می کند که یک سند PDF را نشان می دهد. روش convertToPNGMemoryStream() API یک صفحه PDF را به یک جریان تصویر در آرایه بایت[] تبدیل می کند. Aspose.BarCode API کلاس BarCodeReader را ارائه می دهد که ما را قادر می سازد تا عملیات readBarCodes را برای شناسایی بارکد انجام دهیم. کلاس BarCodeResult اطلاعات بارکد مانند نوع بارکد، متن کد، منطقه و سایر پارامترها را ذخیره می کند.

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

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

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

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

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

// تمام صفحات PDF را از صفحه 1 شروع کنید
for (int i = 1; i <= pdfDoc.getPages().size(); ++i)
{
    // صفحه PDF را به جریان ارائه دهید
    byte[] ms = pdfDoc.getPages().get_Item(i).convertToPNGMemoryStream();
    InputStream stream = new ByteArrayInputStream(ms);

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

    // نمایش نتایج
 for (BarCodeResult result : reader.readBarCodes()) {
    System.out.println("CodeText: " + result.getCodeText());
    System.out.println("Symbology type: " + result.getCodeType());
    System.out.println(("-------------------------------"));
  }
}
CodeText: Aspose.Barcode Pdf417 Example
Symbology type: Pdf417
-------------------------------
CodeText: Aspose.Barcode QR Example
Symbology type: QR
-------------------------------
CodeText: Aspose.Barcode DataMatrix Example
Symbology type: DataMatrix

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

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

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

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

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

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

// مثال کد زیر نحوه تبدیل صفحات PDF به تصاویر با تبدیل PDF و خواندن بارکدها را نشان می دهد.
// مسیر رسیدن به سند
String folderPath = "C:\\Files\\BarCode\\";

// مسیر فایل ورودی
String file = folderPath + "sample-PDF-with-Barcodes.pdf";

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

// یک PdfConvertor را راه اندازی کنید
com.aspose.pdf.facades.PdfConverter pdfConverter = new com.aspose.pdf.facades.PdfConverter(pdfDoc);

// تنظیم بهینه سازی بارکد
pdfConverter.getRenderingOptions().setBarcodeOptimization(true);

// تنظیم وضوح صفحه
// 300 dpi وضوح استاندارد است
pdfConverter.setResolution(new com.aspose.pdf.devices.Resolution(300));

// همه صفحات را به شکل تصویر تنظیم کنید
pdfConverter.setStartPage(1); //starts from page 1
pdfConverter.setEndPage(pdfConverter.getDocument().getPages().size());

// صفحات انتخاب شده را در تصاویر رندر کنید
pdfConverter.doConvert();
int imageCount = 1;

while (pdfConverter.hasNextImage())
{
    // رندر صفحه فعلی به تصویر
    String strBarCodeImage = folderPath + imageCount + ".jpg";
    pdfConverter.getNextImage(strBarCodeImage);

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

    // نمایش نتایج
   for (BarCodeResult result : reader.readBarCodes()) {
    System.out.println("CodeText: " + result.getCodeText());
    System.out.println("Symbology type: " + result.getCodeType());
    System.out.println(("-------------------------------"));
  }
}

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

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

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

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

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

// مثال کد زیر نحوه تبدیل صفحات PDF به تصاویر با PdfExtractor و خواندن بارکد را نشان می دهد.
// مسیر رسیدن به سند
String folderPath = "C:\\Files\\BarCode\\";

// فایل ورودی
String file = folderPath + "sample-PDF-with-Barcodes.pdf";

// یک سند PDF را صحافی کنید
com.aspose.pdf.facades.PdfExtractor pdfExtractor = new com.aspose.pdf.facades.PdfExtractor();
pdfExtractor.bindPdf(file);

// محدوده صفحه را برای استخراج تصویر تنظیم کنید
pdfExtractor.setStartPage(1);
pdfExtractor.setEndPage(3);

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

int imageCount = 1;

// تصاویر را برای پخش در یک حلقه ذخیره کنید
while (pdfExtractor.hasNextImage())
{
  // ذخیره تصویر
  String strBarCodeImage = folderPath + imageCount + ".jpg";
  pdfExtractor.getNextImage(strBarCodeImage);

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

 for (BarCodeResult result : reader.readBarCodes()) {
    System.out.println("CodeText: " + result.getCodeText());
    System.out.println("Symbology type: " + result.getCodeType());
    System.out.println(("-------------------------------"));
  }
}

خواندن بارکد از PDF با استفاده از PngDevice در جاوا

ما همچنین می‌توانیم بارکدها را با تبدیل صفحات سند PDF به تصاویر PNG با استفاده از کلاس PngDevice API بخوانیم. این روش process(Page page, OutputStream output) را ارائه می‌کند که صفحه را به PNG تبدیل می‌کند و آن را در جریان خروجی ذخیره می‌کند. متد processToBufferedImage(Page page) این کلاس صفحه را به BufferedImage تبدیل می کند.

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

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

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

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

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

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

// تمام صفحات PDF را از صفحه 1 شروع کنید
for (int i = 1; i <= pdfDoc.getPages().size(); ++i)
{
    // صفحه PDF را به تصویر بافر رندر کنید
    BufferedImage img = pngDevice.processToBufferedImage(pdfDoc.getPages().get_Item(i));

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

    // نمایش نتایج
   for (BarCodeResult result : reader.readBarCodes()) {
    System.out.println("CodeText: " + result.getCodeText());
    System.out.println("Symbology type: " + result.getCodeType());
    System.out.println(("-------------------------------"));
  }
}

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

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

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

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

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

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

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

// ImagePlacementAbsorber را راه اندازی کنید
com.aspose.pdf.ImagePlacementAbsorber imagePlacementAbsorber = new com.aspose.pdf.ImagePlacementAbsorber();

// تمام صفحات PDF در سند را از صفحه 1 پردازش کنید
for (int i = 1; i <= pdfDoc.getPages().size(); ++i)
{
    // از صفحه ایجاد یک استخراج کننده تصویر دیدن کنید
    imagePlacementAbsorber.visit(pdfDoc.getPages().get_Item(i));

    // تمام تصاویر را از صفحه PDF استخراج کنید
   for (com.aspose.pdf.ImagePlacement imagePlacement : imagePlacementAbsorber.getImagePlacements()) {
      // صفحه PDF را به جریان ارائه دهید
      byte[] ms = pdfDoc.getPages().get_Item(i).convertToPNGMemoryStream();
      InputStream stream = new ByteArrayInputStream(ms);

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

      // نمایش نتایج
     for (BarCodeResult result : reader.readBarCodes()) {
        System.out.println("CodeText: " + result.getCodeText());
        System.out.println("Symbology type: " + result.getCodeType());
        System.out.println(("-------------------------------"));
      }
    }
}

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

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

نتیجه

در این مقاله یاد گرفتیم

  • نحوه شناسایی و خواندن بارکد از اسناد PDF؛
  • روش های مختلف برای استخراج تصاویر از یک سند PDF.
  • برای رمزگشایی بارکد تعبیه شده در جاوا.

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

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