private void DilekceDoldur() { try { Cursor.Current = Cursors.WaitCursor; Object oMissing = System.Reflection.Missing.Value; Object oTrue = true; Object oFalse = false; Word.Application oWord = new Word.Application(); oWord.Visible = true; // Dosya yolunu dogru sekilde ayarlayin string templatePath = System.Windows.Forms.Application.StartupPath + "\\Belgeler\\Velizindilekcesi.docx"; string connectionString = @"Data Source=Database\gezievrak2541.sqlite"; using (SQLiteConnection conn = new SQLiteConnection(connectionString)) { conn.Open(); // Ögrenciler için sorgu string query1 = @" SELECT sinifi, adi || ' ' || soyadi AS adsoyad, ono FROM gezilistemiz25 WHERE ono IS NOT NULL"; using (var cmd1 = new SQLiteCommand(query1, conn)) { using (SQLiteDataReader dr1 = cmd1.ExecuteReader()) { // Sablon dosyasinin kopyasini olustur string tempDocPath = Path.Combine(Path.GetTempPath(), "TempVeliDilekcesi.docx"); File.Copy(templatePath, tempDocPath, true); Word.Document tempDoc = oWord.Documents.Open(tempDocPath, ReadOnly: false); int studentIndex = 1; // Ögrenci indeksini baslat while (dr1.Read()) { string sinifi = dr1["sinifi"].ToString(); string adsoyad = dr1["adsoyad"].ToString(); string ono = dr1["ono"].ToString(); // Basligi ekleyin Word.Paragraph titlePara = tempDoc.Content.Paragraphs.Add(ref oMissing); titlePara.Range.Text = "VELI IZIN BELGESI"; titlePara.Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; titlePara.Range.Font.Bold = 1; // Baslik kalin olacak titlePara.Range.Font.Size = 14; // Baslik yazi tipi boyutu titlePara.Range.InsertParagraphAfter(); // Basliktan sonra bir paragraf ekleyin // Gezibilgileri25 tablosundan veri çekme string query2 = @" SELECT gtarihi, dtarihi, gyeri FROM gezibilgileri25 WHERE EXISTS ( SELECT 1 FROM gezilistemiz25 WHERE gezilistemiz25.sinifi = @sinifi )"; using (var cmd2 = new SQLiteCommand(query2, conn)) { cmd2.Parameters.AddWithValue("@sinifi", sinifi); using (SQLiteDataReader dr2 = cmd2.ExecuteReader()) { while (dr2.Read()) { string gtarihi = Convert.ToDateTime(dr2["gtarihi"]).ToShortDateString(); string dtarihi = Convert.ToDateTime(dr2["dtarihi"]).ToShortDateString(); string gyeri = dr2["gyeri"].ToString(); // Içerigi ekleyin Word.Paragraph newPara = tempDoc.Content.Paragraphs.Add(ref oMissing); newPara.Range.Font.Bold = 0; // Kalin degil newPara.Range.Font.Size = 12; // Varsayilan yazi tipi boyutu newPara.Range.Text = $"Velisi bulundugum {sinifi} sinifi {ono} nolu {adsoyad} isimli ögrencinin {gtarihi} - {dtarihi} tarihleri arasinda planlanan {gyeri} çalismasina/gezisine/toplum hizmetine katilmasinda herhangi bir sakinca görmedigimi bildiririm.\n"; newPara.Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft; // Sola yasli newPara.Range.InsertAfter("\n"); // Basliktan sonra bir satir bosluk ekleyin // Imza kismini ekleyin Word.Paragraph Newimza = tempDoc.Content.Paragraphs.Add(ref oMissing); Newimza.Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight; // Saga yasli Newimza.Range.Font.Bold = 0; // Kalin degil Newimza.Range.Font.Size = 12; // Yazi tipi boyutu Newimza.Range.Text = $"{DateTime.Now.ToShortDateString()}\n" + "(Imza)\n" + "Veli\n" + "Adi Soyadi\n"; Newimza.Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight; // Saga yasli // Her ögrencinin verisinden sonra bir bos paragraf ekleyin Word.Paragraph spacerPara = tempDoc.Content.Paragraphs.Add(ref oMissing); Newimza.Range.InsertAfter("\n"); // Basliktan sonra bir satir bosluk ekleyin //spacerPara.Range.InsertParagraphAfter(); } } } studentIndex++; } // Belgeyi kaydet string savePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "VeliDilekcesi.docx"); tempDoc.SaveAs2(savePath); // Geçici belgeyi kapat tempDoc.Close(ref oFalse, ref oMissing, ref oMissing); System.Runtime.InteropServices.Marshal.ReleaseComObject(tempDoc); conn.Close(); } } oWord.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(oWord); oWord = null; GC.WaitForPendingFinalizers(); GC.Collect(); Cursor.Current = Cursors.Default; MessageBox.Show("Sözlesme Belgeleri Word formatinda masaüstüne kaydedildi!"); this.Close(); } } catch (Exception hata) { MessageBox.Show("Islem Sirasinda Hata Olustu: " + hata.Message); } }
I'm using C# to transfer text to Word through a desktop form. However, I'm experiencing issues with the text formatting. The title should be centered, the paragraph should be left-aligned, and the date, signature, and name sections should be right-aligned. Despite adjusting the settings, I can't get the format to appear as I want. Can you help me?