none
c# pdf-e aktarma ile ilgili RRS feed

  • Soru

  • Merhaba. Datagrdiviewden pdf aktarmam için datagrid illaki ado net kullanarak doldurulmalı? Yani linq to sql kullanarak datagridviewi dolduruyorum pdf aktarmak istediyimde sorunlar çıkıyor. Böyle bir kural vamı?
    9 Nisan 2018 Pazartesi 14:38

Yanıtlar

  • Öyle bir kural yok. Ama bize şöyle şöyle farklılıklar oluyor diye göstermelisiniz. Ben bu iş için datagridview gerektiğini de düşünmüyorum.

    www.cihanyakar.com


    9 Nisan 2018 Pazartesi 16:14
  • Doğrudan list üzerinden yapmanız uygun olmuş. Benim ilgili kütüphane ile ilgili hiç tecrübem yok, bu sebeple bu soruya yanıt veremem. Ama ben olsam HTML olarak çıkartıp onu PDF'e dönüştürmeye bakardım hem html templateler hazırladım böylece ufak tefek değişiklikler için kod yazmak gerekmezdi. Tabi daha önce yapmadığım için örnek kod gönderemiyorum ve çok kolay olur diyemiyorum.

    www.cihanyakar.com


    10 Nisan 2018 Salı 13:06

Tüm Yanıtlar

  • Öyle bir kural yok. Ama bize şöyle şöyle farklılıklar oluyor diye göstermelisiniz. Ben bu iş için datagridview gerektiğini de düşünmüyorum.

    www.cihanyakar.com


    9 Nisan 2018 Pazartesi 16:14
  • report isminde bir list oluşturdum verileri oraya aktardım. Sonra listdeki verileri bu şekilde  pdf -e aktardım. Sorun yok . Pdf -e aktarmasına aktarıyor ama döngü kısmı bana hatalı gibi geldi.  Dogrumu? Bir de yapamadığım tablonun en sonuda tablo dışında sol köşede bir text yazdırmaq (mesela doktorun ismi) Bunu nasıl yapa bilirim?

       private void btnPdf_Click(object sender, EventArgs e)
            {
                  BaseFont bf = BaseFont.CreateFont(Environment.GetEnvironmentVariable("windir") + @"\fonts\ARIALUNI.TTF", BaseFont.IDENTITY_H, true);
                Font NormalFont = new iTextSharp.text.Font(bf, 12, Font.NORMAL, BaseColor.BLACK);
    
                if (report != null)
                {
                    string _path = @"D:\gorsel.pdf";
                    System.IO.FileStream fs = new FileStream(_path, FileMode.Create, FileAccess.Write, FileShare.None);
                    Document document = new Document();
                    document.SetPageSize(iTextSharp.text.PageSize.A4);
                    PdfWriter writer = PdfWriter.GetInstance(document, fs);
                    document.Open();
    
                    //picture
                    iTextSharp.text.Image resim = iTextSharp.text.Image.GetInstance(appPath + "/icons/logo.png");
                    resim.Alignment = iTextSharp.text.Image.ALIGN_CENTER;
                    resim.ScaleToFit(585, 635f);
                    resim.SetAbsolutePosition(10, 740);
                    document.Add(resim);
                    //
    
                    //Add a line seperation
                    Paragraph line = new Paragraph(new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(1.0F, 100.0F, new BaseColor(0, 0, 0), Element.ALIGN_CENTER, -60)));
                    document.Add(line);
                    //
    
                    // Name Surname
                    PdfContentByte cb = writer.DirectContent;
                    BaseFont bf = BaseFont.CreateFont(Environment.GetEnvironmentVariable("windir") + @"\fonts\ARIALUNI.TTF", BaseFont.IDENTITY_H, true);
                    cb.SetColorFill(BaseColor.BLACK);
                    cb.SetFontAndSize(bf, 8);
                    cb.BeginText();
                    cb.SetTextMatrix(32, 712);                
                    cb.ShowText(pacient);
                    cb.EndText();
                    //
    
                    // ServiceName
                    PdfContentByte cbService = writer.DirectContent;             
                    BaseFont bfService = BaseFont.CreateFont(Environment.GetEnvironmentVariable("windir") + @"\fonts\ARIALUNI.TTF", BaseFont.IDENTITY_H, true);
                    cbService.SetColorFill(BaseColor.BLACK);
                    cbService.SetFontAndSize(bfService, 15);
                    cbService.BeginText();
                    cbService.SetTextMatrix(250, 700);
                    cbService.ShowText(serviceName);
                    cbService.EndText();
                    //
    
                    //Table
                    float[] columnWidths = { 5.7f, 4, 4 }; 
                    PdfPTable table = new PdfPTable(columnWidths);
                    table.HorizontalAlignment = Element.ALIGN_CENTER;               
                    table.SpacingBefore = 100;
                    table.WidthPercentage = 100;             
                    addCell(table, "Müayinə", 1);
                   addCell(table, "Nəticə", 1);
                   addCell(table, "Norma", 1);
                    // table
    
                  
                    for (int i = 0; i < report.Count; i++)
                    {
                        table.AddCell(new Phrase(report[i].xidmet.ToString(), NormalFont));                  
                        PdfPCell cell2 = new PdfPCell(new Phrase(new Phrase(report[i].netice.ToString(), NormalFont)));
                        PdfPCell cell3 = new PdfPCell(new Phrase(new Phrase(report[i].norma.ToString(), NormalFont)));
                        cell2.HorizontalAlignment = Element.ALIGN_CENTER;
                        cell3.HorizontalAlignment = Element.ALIGN_CENTER;                
                        table.AddCell(cell2);
                        table.AddCell(cell3);
                    }            
                    document.Add(table);
                    document.Close();
                }
            }
    
    
     public void addCell(PdfPTable table, string text, int rowspan)
            {
                BaseFont bf = BaseFont.CreateFont(Environment.GetEnvironmentVariable("windir") + @"\fonts\ARIALUNI.TTF", BaseFont.IDENTITY_H, true);
                Font NormalFont = new iTextSharp.text.Font(bf, 12, Font.NORMAL, BaseColor.BLACK);
                PdfPCell cell = new PdfPCell(new Phrase(text, NormalFont));
                cell.BackgroundColor = new iTextSharp.text.BaseColor(51, 102, 102);
                cell.Rowspan = rowspan;
                cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                cell.VerticalAlignment = PdfPCell.ALIGN_MIDDLE;
                table.AddCell(cell);
            }



    10 Nisan 2018 Salı 12:50
  • Doğrudan list üzerinden yapmanız uygun olmuş. Benim ilgili kütüphane ile ilgili hiç tecrübem yok, bu sebeple bu soruya yanıt veremem. Ama ben olsam HTML olarak çıkartıp onu PDF'e dönüştürmeye bakardım hem html templateler hazırladım böylece ufak tefek değişiklikler için kod yazmak gerekmezdi. Tabi daha önce yapmadığım için örnek kod gönderemiyorum ve çok kolay olur diyemiyorum.

    www.cihanyakar.com


    10 Nisan 2018 Salı 13:06