استخراج النص والصور من مستندات PDF باستخدام Java

PDF هو تنسيق الوثيقة الرقمية الأكثر استخدامًا. يمكننا تحليل مستندات PDF واستخراج النصوص والصور منها برمجيًا. قد يكون مفيدًا في العديد من الحالات ، مثل تحليل النص ، واسترجاع المعلومات ، وتحويل المستندات ، وما إلى ذلك. في هذه المقالة ، سوف نتعلم كيفية استخراج النصوص والصور من مستندات PDF باستخدام Java.

سيتم تناول الموضوعات التالية في هذه المقالة:

Java API لاستخراج النصوص والصور من مستندات PDF

لاستخراج النصوص والصور من مستندات PDF ، سنستخدم GroupDocs.Parser for Java API. يسمح باستخراج النص الخام والمنسق والمنظم والبيانات الوصفية والصور من ملفات التنسيقات المدعومة. يرجى إما تنزيل JAR الخاص بواجهة برمجة التطبيقات أو إضافة تكوين pom.xml التالي في تطبيق Java المستند إلى Maven.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-parser</artifactId>
	<version>22.3</version> 
</dependency>

استخراج نص من مستندات PDF باستخدام Java

يمكننا تحليل أي مستند PDF واستخراج النص باتباع الخطوات الواردة أدناه:

  • أولاً ، قم بتحميل ملف PDF باستخدام فئة Parser.
  • بعد ذلك ، قم باستدعاء طريقة Parser.getText () لاستخراج النص من المستند الذي تم تحميله.
  • بعد ذلك ، احصل على النتائج في كائن فئة TextReader.
  • أخيرًا ، اتصل بالطريقة TextReader.readToEnd () لقراءة جميع الأحرف من الموضع الحالي إلى نهاية قارئ النص وإعادتها كسلسلة واحدة.

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج نص من ملف PDF باستخدام Java.

// يوضح مثال الكود هذا كيفية تحليل ملف PDF واستخراج النص.
// إنشاء مثيل لفئة المحلل اللغوي
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");

// استخرج نصًا إلى القارئ
try (TextReader reader = parser.getText()) {
    // اطبع نصًا من المستند
    // إذا لم يكن استخراج النص مدعومًا ، فسيكون القارئ فارغًا
    System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}
استخراج نص من مستندات PDF باستخدام Java

استخراج نص من مستندات PDF باستخدام Java

استخراج نص من صفحة محددة من مستند PDF باستخدام Java

يمكنك تحليل مستند PDF واستخراج النص من صفحة معينة باتباع الخطوات البسيطة المذكورة أدناه:

  • أولاً ، قم بتحميل ملف PDF باستخدام فئة Parser.
  • بعد ذلك ، احصل على معلومات المستند باستخدام طريقة Parser.getDocumentInfo ().
  • بعد ذلك ، تحقق مما إذا كانت IDocumentInfo.getPageCount () ليست صفراً.
  • بعد ذلك ، قم باستدعاء الأسلوب Parser.getText () مع فهرس الصفحة لاستخراج النص من تلك الصفحة المحددة والحصول على نتائج في كائن فئة TextReader.
  • أخيرًا ، اعرض النتائج عن طريق استدعاء الأسلوب TextReader.readToEnd () لقراءة النص المستخرج.

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج نص من صفحة معينة باستخدام Java.

// يوضح مثال الكود هذا كيفية تحليل ملف PDF واستخراج النص من صفحة معينة.
// إنشاء مثيل لفئة المحلل اللغوي
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");

// احصل على معلومات الوثيقة
IDocumentInfo documentInfo = parser.getDocumentInfo();

// تحقق مما إذا كان المستند يحتوي على صفحات
if (documentInfo == null || documentInfo.getRawPageCount() == 0) {
    System.out.println("Document hasn't pages.");
    return;
}

// استخرج نصًا إلى القارئ
try (TextReader reader = parser.getText(1)) {
    // اطبع نصًا من المستند
    // إذا لم يكن استخراج النص مدعومًا ، فسيكون القارئ فارغًا
    System.out.println(reader.readToEnd());
}

تمكن واجهة برمجة التطبيقات أيضًا من التحقق مما إذا كان المستند يدعم ميزة تقسيم النص. لهذا الغرض ، يمكننا استخدام خاصية Parser.getFeatures (). isText (). يرجى قراءة المزيد حول الميزات المدعومة.

احصل على صور من مستندات PDF باستخدام Java

يمكننا تحليل أي مستند PDF واستخراج الصور باتباع الخطوات الواردة أدناه:

  • أولاً ، قم بتحميل ملف PDF باستخدام فئة Parser.
  • بعد ذلك ، قم باستدعاء الأسلوب Parser.getImages () واحصل على مجموعة من PageImageArea كائنات من المستند الذي تم تحميله.
  • بعد ذلك ، تحقق مما إذا كانت المجموعة ليست فارغة.
  • بعد ذلك ، كرر كل الصور التي تم العثور عليها.
  • أخيرًا ، اعرض تفاصيل الصور.

يوضح نموذج التعليمات البرمجية التالي كيفية الحصول على تفاصيل الصور من ملف PDF باستخدام Java.

// يوضح مثال الرمز هذا كيفية تحليل ملف PDF والحصول على الصور.
// إنشاء مثيل لفئة المحلل اللغوي
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// استخراج الصور
Iterable<PageImageArea> images = parser.getImages();

// تحقق مما إذا كان استخراج الصور مدعومًا
if (images == null) {
    System.out.println("Images extraction isn't supported");
    return;
}

// كرر على الصور
for (PageImageArea image : images) {
    // اطبع فهرس صفحة ومستطيل ونوع صورة:
    System.out.println("Page: " + image.getPage().getIndex());
    System.out.println("Image Rectangle: " + image.getRectangle());
    System.out.println("Image Filetype: " + image.getFileType());
    System.out.println("----------------------------------------");
}
احصل على صور من مستندات PDF باستخدام Java

احصل على صور من مستندات PDF باستخدام Java

استخراج الصور من صفحة محددة من مستند PDF باستخدام Java

يمكننا استخراج الصور من صفحة معينة باتباع الخطوات البسيطة المذكورة أدناه:

  • أولاً ، قم بتحميل ملف PDF باستخدام فئة Parser.
  • بعد ذلك ، احصل على معلومات المستند باستخدام طريقة Parser.getDocumentInfo ().
  • بعد ذلك ، تحقق مما إذا كانت IDocumentInfo.getPageCount () ليست صفراً.
  • بعد ذلك ، قم باستدعاء طريقة Parser.getImages () مع فهرس الصفحة لاستخراج الصور من تلك الصفحة المحددة.
  • أخيرًا ، كرر كل الصور التي تم العثور عليها وأظهر التفاصيل.

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج الصور من صفحة معينة باستخدام Java.

// يوضح مثال الكود هذا كيفية تحليل ملف PDF والحصول على صور من صفحة معينة.
// إنشاء مثيل لفئة المحلل اللغوي
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// احصل على معلومات الوثيقة
IDocumentInfo documentInfo = parser.getDocumentInfo();

// تحقق مما إذا كان المستند يحتوي على صفحات
if (documentInfo.getPageCount() == 0) {
    System.out.println("Document hasn't pages.");
    return;
}

int pageIndex = 1;

// كرر على الصور
// نتجاهل التحقق من القيم الصفرية حيث قمنا بفحص دعم ميزة استخراج الصور مسبقًا
for (PageImageArea image : parser.getImages(pageIndex)) {
  // اطبع فهرس صفحة ومستطيل ونوع صورة:
    System.out.println("Page: " + image.getPage().getIndex());
    System.out.println("Image Rectangle: " + image.getRectangle());
    System.out.println("Image Filetype: " + image.getFileType());
    System.out.println("----------------------------------------");
}

استخراج الصور وحفظها في الملفات باستخدام Java

يمكننا أيضًا حفظ الصور المستخرجة باتباع الخطوات الموضحة أدناه:

  • أولاً ، قم بتحميل ملف PDF باستخدام فئة Parser.
  • بعد ذلك ، قم باستدعاء الأسلوب Parser.getImages () واحصل على مجموعة من كائنات PageImageArea من المستند الذي تم تحميله.
  • ثم قم بإنشاء مثيل لفئة ImageOptions واضبط تنسيق الصورة.
  • بعد ذلك ، كرر كل الصور التي تم العثور عليها.
  • أخيرًا ، احفظ باستخدام طريقة save (). يأخذ مسار ملف الإخراج و ImageOptions كوسائط.

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج الصور وحفظها في الملفات باستخدام Java.

// يوضح مثال الكود هذا كيفية الاستخراج والصور في الدليل.
// إنشاء مثيل لفئة المحلل اللغوي
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// استخراج الصور من الوثيقة
Iterable<PageImageArea> images = parser.getImages();

// تحقق مما إذا كان استخراج الصور مدعومًا
if (images == null) {
    System.out.println("Page images extraction isn't supported");
    return;
}

// قم بإنشاء الخيارات لحفظ الصور بتنسيق PNG
ImageOptions options = new ImageOptions(ImageFormat.Png);

int imageNumber = 0;

// كرر على الصور
for (PageImageArea image : images)
{
    // احفظ الصورة في ملف PNG
    image.save(String.format("D:\\Files\\Parser\\Images\\%d.png", imageNumber), options);
    imageNumber++;
}
استخراج الصور وحفظها في الملفات باستخدام Java

استخراج الصور وحفظها في الملفات باستخدام Java

احصل على رخصة مجانية

يمكنك تجربة واجهة برمجة التطبيقات بدون قيود تقييمية عن طريق طلب ترخيص مؤقت مجاني.

استنتاج

في هذه المقالة ، تعلمنا كيفية:

  • استخراج كل النص من مستند PDF كامل أو صفحات محددة من المستند باستخدام Java ؛
  • استخراج الصور من ملف PDF برمجيًا ؛
  • حفظ الصور المستخرجة على قرص محلي.

بالإضافة إلى ذلك ، يمكنك معرفة المزيد حول GroupDocs.Parser for Java API باستخدام التوثيق. في حالة وجود أي غموض ، فلا تتردد في الاتصال بنا على المنتدى.

أنظر أيضا