تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تصدير البيانات الى PDF باستخدام ITextSharp لايدعم اللغة العربية
#3
السلام عليكم

تفضلي الكود
كود :
   Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click

       ' تجهيز الجدول
       Dim pdfTable As New PdfPTable(DataGridView1.ColumnCount)
       pdfTable.DefaultCell.Padding = 3
       pdfTable.WidthPercentage = 30 ' عرض الجدول بنسبة 30% من عرض الصفحة

       ' توسيط الجدول في الصفحة
       pdfTable.HorizontalAlignment = Element.ALIGN_CENTER

       ' تفعيل الاتجاه من اليمين لليسار - ضروري للغة العربية
       pdfTable.RunDirection = PdfWriter.RUN_DIRECTION_RTL

       ' تحديد سماكة الاطار
       pdfTable.DefaultCell.BorderWidth = 1

       ' تعيين ارتفاع افتراضي لخلايا الجدول
       pdfTable.DefaultCell.FixedHeight = 100.0F


       ' الخطوط يجب أن تكون من خطوط النظام لتوافقها مع اللغة العربية
       ' لكن لها طريقة خاصة من معرفة مسار ملف اسم الملف الأصلي كالتالي

       ' تجهيز خط من النظام - آريـال عريض
       ' Arial (Bold) font
       Dim fontArialBoldPath As String = IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "arialbd.ttf")
       Dim fontArialBold As BaseFont = BaseFont.CreateFont(fontArialBoldPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED)
       ' fontArialBold يتم استخدام هذا الاسم للخط


       ' قراءة عناوين أعمدة جدول الداتاجريدفيو
       For Each column As DataGridViewColumn In DataGridView1.Columns

           ' تحديد الخط وحجمه
           Dim fnt As New Font(fontArialBold, 24)
           ' تجهيز محتوى الخلية مع الخط
           Dim pdfCell As New PdfPCell(New Phrase(column.HeaderText, fnt))

           ' إرتفاع الخلية
           pdfCell.FixedHeight = 40

           ' تغيير لون خلفية الخلية
           pdfCell.BackgroundColor = New iTextSharp.text.BaseColor(240, 240, 240)

           ' توسيط عمودي
           pdfCell.VerticalAlignment = Element.ALIGN_MIDDLE
           ' توسيط أفقي
           pdfCell.HorizontalAlignment = Element.ALIGN_CENTER

           ' إضافة الخلية إلى الجدول
           pdfTable.AddCell(pdfCell)
       Next


       ' تعيين عرض الأعمدة
       Dim columnsWidth() As Integer = (From x In DataGridView1.Columns Select CInt(x.Width)).ToArray
       If DataGridView1.RightToLeft = Windows.Forms.RightToLeft.Yes Then Array.Reverse(columnsWidth)
       pdfTable.SetWidths(columnsWidth)


       ' قراءة أسطر جدول الداتاجريدفيو
       For Each row As DataGridViewRow In DataGridView1.Rows
           ' يتم الخروج من الحلقة إذا كان السطر الأخير الجديد
           If row.IsNewRow Then Exit For

           ' قراءة خلايا سطر جدول التاجريدفيو
           For Each cell As DataGridViewCell In row.Cells
               ' تصحيح محتوى نص خلية جدول التاجريدفيو
               If IsNothing(cell.Value) Then cell.Value = String.Empty

               ' تحديد الخط وحجمه ولونه
               Dim fnt = New iTextSharp.text.Font(fontArialBold, 24, iTextSharp.text.Font.NORMAL, New BaseColor(193, 36, 67))
               '' تحديد الخط وحجمه بدون تحديد اللون
               'Dim fnt = New iTextSharp.text.Font(fontTimesNewRomanBold, 24)

               ' تجهيز محتوى الخلية مع الخط مع مسافة قبلها
               Dim pdfCell As New PdfPCell(New Phrase(" " & cell.Value, fnt))

               ' إرتفاع الخلية
               pdfCell.FixedHeight = 60

               ' توسيط عمودي
               pdfCell.VerticalAlignment = Element.ALIGN_MIDDLE

               ' إضافة الخلية إلى الجدول
               pdfTable.AddCell(pdfCell)

           Next

       Next


       ' تجهيز المجلد
       Dim folderPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\FP\"
       If Not IO.Directory.Exists(folderPath) Then IO.Directory.CreateDirectory(folderPath)
       ' إسم الملف كامل مع المسار
       Dim fileName As String = folderPath & "DataGridViewExport.pdf"

       ' تجهيز المستند
       Dim pdfDoc As New Document(PageSize.A2, 10.0F, 10.0F, 10.0F, 0.0F)
       ' كتابة المستند في الملف
       PdfWriter.GetInstance(pdfDoc, New IO.FileStream(fileName, IO.FileMode.Create))
       pdfDoc.Open()
       pdfDoc.Add(pdfTable)
       pdfDoc.Close()

   End Sub


تمت إضافة كود تعيين عرض الأعمدة
الرد }}}
تم الشكر بواسطة: فاطمة غ , فاطمة غ , tariq2812 , Hamza lads


الردود في هذا الموضوع
RE: تصدير البيانات الى PDF باستخدام ITextSharp لايدعم اللغة العربية - بواسطة مساعدة - 30-12-16, 08:58 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف يمكن تصدير ascx كملف dll justforit 1 142 06-12-25, 12:33 AM
آخر رد: salamandal
  مشكلة دعم skin للغة العربية مصمم هاوي 2 728 16-09-25, 07:57 AM
آخر رد: مصمم هاوي
  تصدير البيانات إلى ملف RTF مصمم هاوي 4 844 15-08-25, 04:13 PM
آخر رد: أبو خالد الشكري
  [VB.NET] ما هو أفضل موقع استضافة لقواعد البيانات MSSQL ؟ mmaalmesry 0 799 16-07-25, 10:45 PM
آخر رد: mmaalmesry
  مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك ahmedfa71 13 2,295 09-07-25, 11:24 PM
آخر رد: أبو خالد الشكري
  مشكلة في حفظ البيانات مصمم هاوي 2 1,031 30-06-25, 08:51 AM
آخر رد: مصمم هاوي
  بطء في جلب البيانات مصمم هاوي 9 1,013 08-05-25, 07:51 AM
آخر رد: مصمم هاوي
  تعديل كود تحديث البيانات مصمم هاوي 1 790 26-04-25, 06:07 PM
آخر رد: مصمم هاوي
Photo لايمكن تعرف على تنسيق قاعدة البيانات الدريساوي 2 703 26-04-25, 12:24 AM
آخر رد: الدريساوي
  مساعدة في طريقة تحميل الفيديوهات المخزنة في قاعدة البيانات foad8920 0 665 24-04-25, 12:58 PM
آخر رد: foad8920

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم