• 0

كيف أقرأ ملف PDF في تطبيق جافا؟

كيف أقرأ ملف PDF وأحوله إلى سلسلة نصية String في جافا؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يتم قراءة ملفات PDF في جافا باستخدام PdfReader.

قم باستيراد المكتبات التالية:

 

import java.io.FileOutputStream;

import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;
import com.lowagie.text.pdf.PdfWriter;

أنشئ كائن object من الصف PdfReader class و مرر اسم الملف الذي تريد القراءة منه في المنشئ constructor

 PdfReader reader = new PdfReader("2.pdf");

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

 byte[] streamBytes = reader.getPageContent(1);

لتحويل المصفوفة من نوع byte إلى سلسلة نصية String اكتب الشيفرة التالية:

  String contentStream = new String(streamBytes);

لطباعة محتوى الصفحة اكتب

  System.out.println(contentStream);

مثال كامل:

import java.io.FileOutputStream;

import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;
import com.lowagie.text.pdf.PdfWriter;

public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document(PageSize.A6);
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    document.add(new Paragraph("Hello World"));
    document.add(new Paragraph("Hello People"));
    document.close();

    PdfReader reader = new PdfReader("2.pdf");
    byte[] streamBytes = reader.getPageContent(1);
    String contentStream = new String(streamBytes);
    System.out.println(contentStream);
    StringBuffer buf = new StringBuffer();
    int pos = contentStream.indexOf("Hello World") + 11;
    buf.append(contentStream.substring(0, pos));
    buf.append(", Hello ");
    buf.append(contentStream.substring(pos));
    String hackedContentStream = buf.toString();
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("HelloWorldStreamHack.pdf"));
    reader.setPageContent(1, hackedContentStream.getBytes());
    stamper.close();
  }

}

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن