18-12-19, 08:19 PM
السلام عليكم
هل من الممكن اضافة التعديلات التالية على الكود من فظلكم
1 - في اعلى الصفحة على اليمين اسم الجدول يؤخذ من التكست بكس1
2 - في اسفل الصفحة على اليمين اسم المؤسسة يؤخذ من التكست بكس2 و على اليسار تاريخ اليوم
3- هل من الممكن اضافة كود لتغيير مكان عمود من الجدول فقط في ملف PDF
بارك الله فيكم جميعا
هل من الممكن اضافة التعديلات التالية على الكود من فظلكم
1 - في اعلى الصفحة على اليمين اسم الجدول يؤخذ من التكست بكس1
2 - في اسفل الصفحة على اليمين اسم المؤسسة يؤخذ من التكست بكس2 و على اليسار تاريخ اليوم
3- هل من الممكن اضافة كود لتغيير مكان عمود من الجدول فقط في ملف PDF
بارك الله فيكم جميعا
كود :
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
On Error Resume Next
Dim res As DialogResult = MsgBox("هل أنت متأكد من عملية التصدير ", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "")
If res = Windows.Forms.DialogResult.Yes Then
' تجهيز الجدول
Dim pdfTable As New PdfPTable(DataGridView1.ColumnCount)
pdfTable.DefaultCell.Padding = 3
pdfTable.WidthPercentage = 100
' توسيط الجدول في الصفحة
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 = System.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, 18)
' تجهيز محتوى الخلية مع الخط
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
' قراءة أسطر جدول الداتاجريدفيو
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, 16, 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 = 40
' توسيط عمودي
pdfCell.VerticalAlignment = Element.ALIGN_MIDDLE
' إضافة الخلية إلى الجدول
pdfTable.AddCell(pdfCell)
Next
Next
' تجهيز المجلد
Dim SvFile As New SaveFileDialog
SvFile.Filter = "Pdf File |*.Pdf"
Dim folderPath As String = String.Empty
If SvFile.ShowDialog = Windows.Forms.DialogResult.OK Then
folderPath = SvFile.FileName
Else
Exit Sub
End If
'Dim folderPath As String = Application.StartupPath '& "\DataGridViewExport\"
'If Not System.IO.Directory.Exists(folderPath) Then System.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 System.IO.FileStream(fileName, System.IO.FileMode.Create))
pdfDoc.Open()
pdfDoc.Add(pdfTable)
pdfDoc.Close()
MsgBox("تمت عملية التصدير الجدول بنجاح", "تصدير", SystemIcons.Information)
ElseIf res = Windows.Forms.DialogResult.No Then
MsgBox("تمت عملية إلغاء الجدول", "إلغاء", SystemIcons.Error)
Exit Sub
End If
End Sub