اذهب إلى المحتوى
  • 0

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

OsamaSaif

السؤال

Recommended Posts

  • 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();
  }

}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...