دعم الخط العربى فى المكتبة iText لانشاء ملفات pdf

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

دعم الخط العربى فى المكتبة iText لانشاء ملفات pdf

مُساهمة من طرف أحمد مناع في الأربعاء فبراير 05, 2014 8:43 am

بسم الله الرحمن الرحيم

أهلا وسهلا بكم إخوانى الكرام ...منذ فترة كنا قد تحدثنا عن كيفية إنشاء و قراءة ملفات PDF من خلال تطبيقات الجافا من خلال المكتبة iText ....درس اليوم سنتعلم كيفية دعم الخط العربى عند انشاء ملف pdf لان الدرس المشار الية لم يوضح ذلك

1_ فى البداية سنقوم بالاعلان عن الكائن Font لتحميل أحد الخطوط التى تدعم اللغة العربية على النحو التالى :

الرمز:
  
public static Font fontArabic =
FontFactory.getFont("c:/windows/fonts/arial.ttf",BaseFont.IDENTITY_H, 30,Font.NORMAL);

2_ بعد ذلك نقوم بإنشاء ملف pdf يحتوى على نص عربى على النحو التالى :

الرمز:
  
        
    Document document = new Document(PageSize.A4, 50, 50, 50, 50);
    PdfWriter.getInstance(document, new FileOutputStream("c:/1Pdf.pdf"));
    
    document.open();
        

Paragraph p;
p = new Paragraph("منتدى مصر التقنى", fontArabic );

document.add(p);  
        
 document.close();      
        

_ لكن عند فتح الملف الذى قمت بإنشائة ستجد أن النتيجة مخيبة للامال كما فى الشكل التالى :



ولحل تلك المشكلة هو تحديد اتجاة النص من اليمين الى الشمال ....وبما ان كائن document لا يمتلك اسلوب او طريقة لفعل ذلك سنطر لانشاء جدول حيث ان الجدوال فى تلك المكتبة لديها الاسلوب setRunDirection والذى يستخدم فى تحديد اتجاة الكتابة ....اذن الكود السابق سيكون على النحو التالى :

الرمز:
  
        Document document = new Document(PageSize.A4, 50, 50, 50, 50);
        
        PdfWriter.getInstance(document, new FileOutputStream("c:/1Pdf.pdf"));
        document.open();
        
        
      
PdfPTable table = new PdfPTable(1);
table.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
PdfPCell cell = new PdfPCell();
cell.setBorder(Rectangle.NO_BORDER);

Paragraph p;

p = new Paragraph("منتدى مصر التقنى", fontArabic );
p.setAlignment(PdfPCell.ALIGN_LEFT);
cell.addElement(p);
table.addCell(cell);

document.add(table);  
          
 document.close();      
        
        
    

و النتيجة على النحو التالى :



أما بالنسبة لقراءة ملف pdf باللغة العربية باستخدام تلك المكتبة فحتى كتابة تلك السطور لم نستطيع ان نعلم طريقة او حيلة لفعل ذلك

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: دعم الخط العربى فى المكتبة iText لانشاء ملفات pdf

مُساهمة من طرف أحمد مناع في الأربعاء فبراير 05, 2014 8:50 am

الكود الكامل للتطبيق على النحو التالى :

الرمز:
package itext;

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;
import java.io.*;

public class Itext {
   
public static Font fontArabic =
FontFactory.getFont("c:/windows/fonts/arial.ttf",BaseFont.IDENTITY_H, 30,Font.NORMAL);
 

public static void main(String[] args) throws DocumentException, FileNotFoundException {
   
       
 Document document = new Document(PageSize.A4, 50, 50, 50, 50);
 PdfWriter.getInstance(document, new FileOutputStream("c:/1Pdf.pdf"));
 document.open();
       
       
     
PdfPTable table = new PdfPTable(1);
table.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
PdfPCell cell = new PdfPCell();
cell.setBorder(Rectangle.NO_BORDER);

Paragraph p;

p = new Paragraph("منتدى مصر التقنى", fontArabic );
p.setAlignment(PdfPCell.ALIGN_LEFT);
cell.addElement(p);
table.addCell(cell);

document.add(table);     
document.close();     
       
 
    }
}

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى