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

اذهب الى الأسفل

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

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

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

أهلا وسهلا بكم إخوانى الكرام ...منذ فترة كنا قد تحدثنا عن كيفية [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]من خلال المكتبة 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();      
        

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

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


ولحل تلك المشكلة هو تحديد اتجاة النص من اليمين الى الشمال ....وبما ان كائن 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();      
        
        
    

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

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


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

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

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

http://egy-tech.forumegypt.net

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

دعم الخط العربى فى المكتبة iText لانشاء ملفات pdf  Empty رد: دعم الخط العربى فى المكتبة 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
المساهمات : 994
النقاط : 201783
التقيم : 119
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

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

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


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