إنشاء و قراءة ملفات PDF من خلال تطبيقات الجافا
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: التعامل مع حزم الجافا java package
صفحة 1 من اصل 1 • شاطر
إنشاء و قراءة ملفات PDF من خلال تطبيقات الجافا
بسم الله الرحمن الرحيم
أهلا وسهلا بكم إخوانى الكرام ....درس اليوم إن شاء الله تعالى عن كيفية إنشاء ملفات PDF من تطبيقات الجافا ...ويقدم هذا الدرس معلومات كيفية عن كيفية فعل ذلك و ذلك من خلال مكتبة تسمى iText وهى مكتبة مفتوحة المصدر تسمح لك بانشاء ملفات pdf ...
أولا _ التعرف على فئات المكتبة
_الفئة com.itextpdf.text.pdf.PdfReader ....وتستخدم تلك الفئة لقراءة ملفات PDF
_الفئة com.itextpdf.text.pdf.PdfWriter .....تستخدم تلك الفئة لكتابة ملفات PDF
_ الفئة com.itextpdf.text.Document هي الطبقة الرئيسية لتوليد وثيقة PDF. هذه هي الدرجة الأولى إلى أن يتم إنشاء مثيل. مرة واحدة وفيما يلي بعض من غيرها من الطبقات استخداما أدناه:
_ الفئة com.itextpdf.text.Paragraph........هذه الفئة تمثل الفقرة بادئة.
_ الفئة com.itextpdf.text.Chapter تستخدم هذه الفئة لانشاء فصلا Chapter في وثيقة PDF. يتم إنشاؤه باستخدام الفقرة البادئة كعنوان والباحث ورقم الفصل.
-الفئة com.itextpdf.text.Font تحتوي هذه الفئة على كل مواصفات الخط، مثل عائلة الخط والحجم والنمط واللون.
_ الفئة com.itextpdf.text.List وهذه الفئة تستخدم لانشاء القوائم والتي، بدورها، يحتوي على عدد من ListItems.com.itextpdf.text.pdf.PDFPTable، وهذا هو الجدول الذي يمكن وضعها في موضع مطلق ولكن يمكن أيضا أن تضاف إلى الوثيقة باعتبارها فئة الجدول.
_ الفئة com.itextpdf.text.Anchor و تستخدم تلك الفئة فى انشاء الاشارات المرجعية
ثانيا _ كيفية أستخدام المكتبة
_ فى البداية قم بتحميل المكتبة من المرفقات
_ قم بإنشاء مشروع قياسى جديد
_من نافذة Explorer قم قم بالنقر يمين على المجلد Libraries ومن القائمة التى ستظهر أختر الامر Add Jar/Folder
_ سيظهر لك مربع حوارى لاضافة ملف من نوع jar قم بالبحث عن الملف itextpdf-5.4.4.jar لاضافة للمشروع
ثالثا_ كتابة التعليمات البرمجية لانشاء ملفات PDF
لكى تقوم بإنشاء مستند PDF بسيط يحتوي على بعض العناصر الأساسية نتبع التعليمات البرمجية التالية :
_ استيراد المكتبات التالية :
- الكود:
import java.io.FileOutputStream;
import java.util.Date;
import com.itextpdf.text.Anchor;
import com.itextpdf.text.BadElementException;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Chapter;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.List;
import com.itextpdf.text.ListItem;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Section;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
- الكود:
Document document = new Document(PageSize.A4, 50, 50, 50, 50);
_ لم يتم تعريف حتى الآن نوع من هذه الوثيقة المراد إنشائها باستخدام تلك المكتبة وذلك لكونها تستخدم وثائق بصيغ اخرى منها HtmlWriter, RtfWriter, XmlWriter لذلك سنقوم بتحديد نوع المستند المراد إنشائه و ذلك من خلال تعريف نوع الوثيقة على النحو التالى :
- الكود:
PdfWriter.getInstance(document, new FileOutputStream("c:/FirstPdf.pdf"));
document.open();
_الآن ، سوف نقوم بإضافة بعض النصوص للصفحة الأولى من الوثيقة مع تعين الإعدادات الافتراضية من الخط واللون ، والحجم ....الخ وذلك على النحو التالى :
- الكود:
Anchor anchorTarget = new Anchor("First page of the document.");
anchorTarget.setName("BackToTop");
Paragraph paragraph1 = new Paragraph();
paragraph1.setSpacingBefore(50);
paragraph1.add(anchorTarget);
document.add(paragraph1);
document.add(new Paragraph("Some more text on the first page with different color and font type.",
FontFactory.getFont(FontFactory.COURIER, 14, Font.BOLD, new CMYKColor(0, 255, 0, 0))));
.فى السطر الثانى و الثالث و الرابع قمنا بإنشاء مثيل جديد من الكائن Paragraph و الذى يستخدم فى إنشاء فقرة بادئة ....فى السطر السادس قمنا بإضافة قيمة الكائن paragraph1 ....أما السطر السابع قمنا باضافة بعض النصوص الى الصفحة ....أما السطر الاخير هو لتحديد نوع الخط و الحجم و الاستايل ولون النص ....الخ و النتيجة كما فى الشكل التالى :
_فى الاعلا رأيت كيفية إضافة نص عادي في وثيقة PDF....لكن نحن بحاجة إلى إضافة بعض عناصر معقدة في المستند. دعونا نبدأ مع انشاء chapterا.وهو قسم خاص له بعض المميزات، والتي تبدأ مع صفحة جديدة، ويضم عددا عرضها بشكل افتراضي :
- الكود:
Paragraph title1 = new Paragraph("Chapter 1",
FontFactory.getFont(FontFactory.HELVETICA,18, Font.BOLDITALIC, new CMYKColor(0, 255, 255,17)));
Chapter chapter1 = new Chapter(title1, 1);
chapter1.setNumberDepth(0);
_ بعد ذلك سنقوم باإنشاء Section و القسم هو عنصر فرعي من الفصل. ونحن إنشاء مقطع مع عنوان This is Section 1 in Chapter 1 "ثم نقوم باضفة بعض النصوص فى هذا القسم و ذلك على النحو التالى
- الكود:
Paragraph title11 = new Paragraph("This is Section 1 in Chapter 1",
FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLD,
new CMYKColor(0, 255, 255,17)));
Section section1 = chapter1.addSection(title11);
Paragraph someSectionText = new Paragraph("This
text comes as part of section 1 of chapter 1.");
section1.add(someSectionText);
someSectionText = new Paragraph("Following is a 3 X 2 table.");
section1.add(someSectionText);
- الكود:
PdfPTable t = new PdfPTable(3);
t.setSpacingBefore(25);
t.setSpacingAfter(25);
PdfPCell c1 = new PdfPCell(new Phrase("Header1"));
t.addCell(c1);
PdfPCell c2 = new PdfPCell(new Phrase("Header2"));
t.addCell(c2);
PdfPCell c3 = new PdfPCell(new Phrase("Header3"));
t.addCell(c3);
t.addCell("1.1");
t.addCell("1.2");
t.addCell("1.3");
section1.add(t);
_ ايضا سنقوم باضفة صورة للصفحة pdf وذلك على النحو التالى :
- الكود:
Image image2 = Image.getInstance("IBMLogo.bmp");
image2.scaleAbsolute(120f, 120f);
section1.add(image2);
- الكود:
List l = new List(true, false, 10);
l.add(new ListItem("First item of list"));
l.add(new ListItem("Second item of list"));
section1.add(l);
- الكود:
document.add(chapter1);
document.close();
رابعا : قراءة ملفات PDF
المكتبة iText تسمح لقراءة ملفات PDF الخاصة بك....وذلك من خلال استخدام الفئة pdf.PdfReader و المثال التالى يوضح كيفية فعل ذلك
- الكود:
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfWriter;
public class ReadAndUsePdf {
private static String INPUTFILE = "c:/temp/FirstPdf.pdf";
private static String OUTPUTFILE = "c:/temp/ReadPdf.pdf";
public static void main(String[] args) throws DocumentException,
IOException {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream(OUTPUTFILE));
document.open();
PdfReader reader = new PdfReader(INPUTFILE);
int n = reader.getNumberOfPages();
PdfImportedPage page;
// Go through all pages
for (int i = 1; i <= n; i++) {
// Only page number 2 will be included
if (i == 2) {
page = writer.getImportedPage(reader, i);
Image instance = Image.getInstance(page);
document.add(instance);
}
}
document.close();
}
}
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: إنشاء و قراءة ملفات PDF من خلال تطبيقات الجافا
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: إنشاء و قراءة ملفات PDF من خلال تطبيقات الجافا
السلام عليكم
شكراا على الشرح الرائع بس حضرتك لم توضح الجزء الخاص بكيفية استعمال ال anchor
بمعنى ان اخر صفحة اللى مكتوب فيها
Using Anchor
back to top
مش موجودة فى الشرح
و ياريت لو تشرح السطر ده
شكراا على الشرح الرائع بس حضرتك لم توضح الجزء الخاص بكيفية استعمال ال anchor
بمعنى ان اخر صفحة اللى مكتوب فيها
Using Anchor
back to top
مش موجودة فى الشرح
و ياريت لو تشرح السطر ده
- الكود:
chapter1.setNumberDepth(0);
- الكود:
Chapter chapter1 = new Chapter(title1, 1);
Hossam- .
- تاريخ التسجيل : 25/09/2013
المساهمات : 5
النقاط : 5
التقيم : 0
الدولة :
الجنس :
رد: إنشاء و قراءة ملفات PDF من خلال تطبيقات الجافا
و بالنسبة لقراءة ال PDF
الجزء بتاع ImportedPage مش واضح هو ايه دوره
الجزء بتاع ImportedPage مش واضح هو ايه دوره
Hossam- .
- تاريخ التسجيل : 25/09/2013
المساهمات : 5
النقاط : 5
التقيم : 0
الدولة :
الجنس :
رد: إنشاء و قراءة ملفات PDF من خلال تطبيقات الجافا
جزاك الله خيرا أخى احمد على هذا الدرس الشيق فعلا ....
أخى حسام أهلا وسهلا بيك أولا ....ثانيا فانلسبة لاستفساراتك
_ بالنسبة لاستعمال الكائن anchor يقوم بانشاء إشارة مرجعية ....بمعنى لو أن المستند مكون من عدة صفحات و اريد أن يستطيع المستخدم النقر على كلمة معينة ليتم أنتقاله الى صفحة أخرى أو الى مكان معين فى نفس الصفحة ....و ذلك على النحو التالى :
- الكود:
Anchor anchorTarget = new Anchor("شرح قواعد البيانات.");
anchorTarget.setName("أذهب الى فصل");
بالنسبة للكود التالى :
- الكود:
chapter1.setNumberDepth(0);
أما الكود التالى
- الكود:
Chapter chapter1 = new Chapter(title1, 1);
وهو لترتيب الصفحات أو الفصول chapter1 فى القائمة الجانيبة لملف pdf ...فمثلا فى المثال السابق وضعنا الرقم (1) ليكون هذه الصفحة فى أول القائمة كما فى الصورة التالية
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
رد: إنشاء و قراءة ملفات PDF من خلال تطبيقات الجافا
أخى الكريم حسام ...أهلا وسهلا بكم و شكرا لتسجيلك فى منتدى مصر التقنى و نتمنى أن نكون عند حسن ظنك ...
فى الدياة ارجوا المعذرة للتأخر فى الرد على استفساراتك وذلك لكون المدينة التى نقيم بها حاليا ( الخرطوم) تشهد بعض الاحتجاجات المأساوية و التى قامت على اثرها السلطات بأغلاق شبكة الانترنت منذ صباح أمس حتى كتابة تلك السطور ...
_ وأشكر الاخت الكريمة زهراء على جهدها فى الرد عليك ...فجزاها الله خيرا ...لكن ردها جانب الصواب فى شىء بسيط ...
بالنسبة لهذا الكود
_ وفى القائمة الجانبية التى تحدثت عنها الاخت زهراء ستجد اسم و رقم الفصل ...لذلك إن أحببت أن يظهر أسم الفصل فقط دون الرقم يجب جعل قيمة الخاصية setNumberDepth تساوى صفر لذلك أستخدمنا الكود التالى :
_ قمنا بالاعلان عنه
و أتمنى ان يكون الشرح واضح ونحن جميعا سعداء باى استفسار اخر ....وفى النهاية اشكر الاخت زهراء مجهودها ....جزاها الله كل خير
فى الدياة ارجوا المعذرة للتأخر فى الرد على استفساراتك وذلك لكون المدينة التى نقيم بها حاليا ( الخرطوم) تشهد بعض الاحتجاجات المأساوية و التى قامت على اثرها السلطات بأغلاق شبكة الانترنت منذ صباح أمس حتى كتابة تلك السطور ...
_ وأشكر الاخت الكريمة زهراء على جهدها فى الرد عليك ...فجزاها الله خيرا ...لكن ردها جانب الصواب فى شىء بسيط ...
بالنسبة لهذا الكود
- الكود:
Chapter chapter1 = new Chapter(title1, 1);
_ وفى القائمة الجانبية التى تحدثت عنها الاخت زهراء ستجد اسم و رقم الفصل ...لذلك إن أحببت أن يظهر أسم الفصل فقط دون الرقم يجب جعل قيمة الخاصية setNumberDepth تساوى صفر لذلك أستخدمنا الكود التالى :
- الكود:
chapter1.setNumberDepth(0);
_ قمنا بالاعلان عنه
- الكود:
PdfImportedPage page;
- الكود:
page = writer.getImportedPage(reader, i);
و أتمنى ان يكون الشرح واضح ونحن جميعا سعداء باى استفسار اخر ....وفى النهاية اشكر الاخت زهراء مجهودها ....جزاها الله كل خير
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: إنشاء و قراءة ملفات PDF من خلال تطبيقات الجافا
شكراا على ترحيبكم بى
و شكرااا على ردودكم
و اتمنى للسودان كل خير و ان تمر الاوضاع الحالية الى ما فيه خير البلاد باقل الاضرار
و بالنسبة للجزء الخاص بال anchor فانا افهم الفكرة التى يعمل على اساسها و لكن المشكلة ان الشرح لم يوضح متى نضع الجملة التى سيضغط عليها المستخدم فيدهب للجزء المخصص الدى سيأخده اليه ال anchor
و فى حالة شرح الاخت زهراء فانا اعنى جملة (((ادهب الى الفصل)))
و فى حالة الشرح الاساسى فانا اعنى جملة(((Back To Top)))
لم يتم التوضيح كيف يتم ادخالهما
و اما بقية الاجزاء فان شرحكم استوفى جميع الجوانب
جزاكم الله خيراا
و شكرااا على ردودكم
و اتمنى للسودان كل خير و ان تمر الاوضاع الحالية الى ما فيه خير البلاد باقل الاضرار
و بالنسبة للجزء الخاص بال anchor فانا افهم الفكرة التى يعمل على اساسها و لكن المشكلة ان الشرح لم يوضح متى نضع الجملة التى سيضغط عليها المستخدم فيدهب للجزء المخصص الدى سيأخده اليه ال anchor
و فى حالة شرح الاخت زهراء فانا اعنى جملة (((ادهب الى الفصل)))
و فى حالة الشرح الاساسى فانا اعنى جملة(((Back To Top)))
لم يتم التوضيح كيف يتم ادخالهما
و اما بقية الاجزاء فان شرحكم استوفى جميع الجوانب
جزاكم الله خيراا
Hossam- .
- تاريخ التسجيل : 25/09/2013
المساهمات : 5
النقاط : 5
التقيم : 0
الدولة :
الجنس :
رد: إنشاء و قراءة ملفات PDF من خلال تطبيقات الجافا
اهلا وسهلا بك أخى الكريم حسام ....أرجوا المعذرة فالشرح فعلا ليس كافيا ...بالنسبة لعمل ارتباط داخلى على النحو التالى :بالنسبة للجزء الخاص بال anchor فانا افهم الفكرة التى يعمل على اساسها و لكن المشكلة ان الشرح لم يوضح متى نضع الجملة التى سيضغط عليها المستخدم فيدهب للجزء المخصص الدى سيأخده اليه ال anchor
و فى حالة شرح الاخت زهراء فانا اعنى جملة (((ادهب الى الفصل)))
و فى حالة الشرح الاساسى فانا اعنى جملة(((Back To Top)))
لم يتم التوضيح كيف يتم ادخالهما
_ أولا يتم تجهيز النص الذى سيتم النقر عليه على النحو التالى :
- الكود:
Anchor anchor = new Anchor("Go to a chapter2.");
anchor.setReference("#ggg");
Paragraph paragraph = new Paragraph();
paragraph.add(anchor);
_نقوم بعد ذلك بتجهيز النص المراد الوصول اليه عند النقر على النص السابق على النحو التالى :
- الكود:
Anchor anchorTarget = new Anchor("This is the chapter2.");
anchorTarget.setName("ggg");
Paragraph targetParagraph = new Paragraph();
targetParagraph.add(anchorTarget);
ويتم اضافة للصفحة كما تحب أنت ....فمثلا سأقوم بوضع النص الذى سيتم النقر عليه فى chapter1 على النحو التالى :
- الكود:
document.add(chapter1);
document.add(paragraph);
فى السطر الثانى قمنا باضافة paragraph الى مستند pdf فى نفس chapter1
_ سأقوم بعد ذلك بوضع النص الذى سيتم الوصول الية فى chapter2 على النحو التالى :
- الكود:
document.add(chapter2);
document.add(targetParagraph);
- الكود:
package pdf;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import com.itextpdf.text.Anchor;
import com.itextpdf.text.Chapter;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Section;
import com.itextpdf.text.pdf.PdfWriter;
public class Pdf {
public static void main(String[] args) throws DocumentException, FileNotFoundException {
Document document = new Document();
try {
PdfWriter.getInstance(document,
new FileOutputStream("test.pdf"));
document.open();
Anchor anchor = new Anchor("Go to a chapter2.");
anchor.setReference("#ggg");
Paragraph paragraph = new Paragraph();
paragraph.add(anchor);
Anchor anchorTarget = new Anchor("This is the chapter1.");
anchorTarget.setName("ggg");
Paragraph targetParagraph = new Paragraph();
targetParagraph.add(anchorTarget);
Chapter chapter1 = new Chapter("This is a chapter1.", 1);
Section section1 = chapter1.addSection("This is section 1");
Section section2 = chapter1.addSection("This is section 2");
Chapter chapter2 = new Chapter("This is a chapter2.", 2);
Section section3 = chapter2.addSection("This is section 3");
Section section4 = chapter2.addSection("This is section 4");
document.add(chapter1);
document.add(paragraph);
document.add(chapter2);
document.add(targetParagraph);
document.close();
} catch (DocumentException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: إنشاء و قراءة ملفات PDF من خلال تطبيقات الجافا
لقد قرات فى هذا المنتدى من المقالات التى لم اجدها فى اى منتدى عربى اخر أستمروا يا شباب ولكم نجاح باهر باذن الله تعالى
Solutions1- ..
- تاريخ التسجيل : 31/08/2013
المساهمات : 22
النقاط : 30
التقيم : 0
الدولة :
الجنس :
رد: إنشاء و قراءة ملفات PDF من خلال تطبيقات الجافا
أرجوا المعذرة_ وأشكر الاخت الكريمة زهراء على جهدها فى الرد عليك ...فجزاها الله خيرا ...لكن ردها جانب الصواب فى شىء بسيط ... كتب:
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
قراءة ملف pdf عربي
السلام عليكم
شكرا لكم على هذا المنتدى وعلى هذا الموضوع
أنا بصدد عمل برنامج في جافا واحتاج إلى قراءة ملف pdf مكتوب باللغة العربية بال
arabic unicode
لاجل ذلك اضفت الى الكود الذي كتبته أخي احمد الامر التالي داخل for
;((System.out.println(n+" "+ PdfTextExtractor.getTextFromPage(reader, i
كي اتحصل على نص الصفحة الثانية
لكم ما تحصلت عليه هو اشكال وعلامات استفهام
من فضلكم ساعدوني
جزاكم الله خيرا
شكرا لكم على هذا المنتدى وعلى هذا الموضوع
أنا بصدد عمل برنامج في جافا واحتاج إلى قراءة ملف pdf مكتوب باللغة العربية بال
arabic unicode
لاجل ذلك اضفت الى الكود الذي كتبته أخي احمد الامر التالي داخل for
;((System.out.println(n+" "+ PdfTextExtractor.getTextFromPage(reader, i
كي اتحصل على نص الصفحة الثانية
لكم ما تحصلت عليه هو اشكال وعلامات استفهام
من فضلكم ساعدوني
جزاكم الله خيرا
infomath- زائر
رد: إنشاء و قراءة ملفات PDF من خلال تطبيقات الجافا
شكرا جزيلا على الموضوع وبساطة الشرح
سؤالي عن كيفية استعمال هذه المكتبة قمت بتنزيلها ولم أعرف كيف أستعملها وأين أكتب الأكواد أتمنى شرحا لهذا الموضوع . هل يمن ربطها مع بيئة NetBeans ؟؟؟
سؤالي الثاني قرأت مقالا آخر عن مكتبة iReport ما الفرق بينهما ؟؟
سؤالي عن كيفية استعمال هذه المكتبة قمت بتنزيلها ولم أعرف كيف أستعملها وأين أكتب الأكواد أتمنى شرحا لهذا الموضوع . هل يمن ربطها مع بيئة NetBeans ؟؟؟
سؤالي الثاني قرأت مقالا آخر عن مكتبة iReport ما الفرق بينهما ؟؟
Aisha Ali- .
- تاريخ التسجيل : 18/04/2018
المساهمات : 1
النقاط : 1
التقيم : 0
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: التعامل مع حزم الجافا java package
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد
» افضل فني كهربائي منازل بالرياض جودة 100% | اتصل الآن
الأحد مارس 17, 2024 12:36 pm من طرف رانيا حماد