2016-09-09 2 views
0

У меня есть страница, которая для подтверждения, мне нужно сгенерировать файл PDF в основном с теми же значениями, что и на странице раньше, я разместил логотип и заголовок, под которым мне нужно передать gridview значения, полученные из сеанса, я пытаюсь понять, как это сделать с помощью PDFsharp, но не могу найти способ.Сетчатый просмотр PDF с PDFsharp

Это мой текущий PDF:

public void Gera_Pdf() 
     { 
      PdfDocument pdf = new PdfDocument(); 
      pdf.Info.Title = "My First PDF"; 
      PdfPage pdfPage = pdf.AddPage(); 
      string texto = "                    Dados do Aceite                                         " + 
                                   "Empresa:" + lblEmpresas.Text + " /Representante:" + lblRepresentante.Text + " /CNPJ:" +lblCnpj.Text; 
      XFont font = new XFont("Times New Roman", 10, XFontStyle.Bold); 
      XGraphics gfx = XGraphics.FromPdfPage(pdfPage); 
      XTextFormatter tf = new XTextFormatter(gfx); 
      DrawImage(gfx, "D:/PDF Sharp/Images/Klabin.png", 50, 50, 50, 50); 
      XRect rect = new XRect(60, 100, 650, 30); 
      gfx.DrawRectangle(XBrushes.White, rect); 
      //tf.Alignment = ParagraphAlignment.Left; 
      tf.DrawString(texto, font, XBrushes.Black, rect, XStringFormats.TopLeft); 

      string pdfFilename = "D:/PDF Sharp/PDF/PdfTeste.pdf"; 
      pdf.Save(pdfFilename); 
      byte[] pdfData; 
      using (var ms = new MemoryStream()) 
      { 
       pdf.Save(ms); 
       pdfData = ms.ToArray(); 
      } 
      Session["pdfBytes"] = pdfData; 

     } 

И это те ценности, которые должны идти под «Texto», он не должен быть хорошей сетка, просто чтобы показать значения в порядке ,

public void Carrega_valores() 
     { 
GridViewRow[] valoresNovos = new GridViewRow[300]; 
      valoresNovos = (GridViewRow[])Session["vlColunas"]; 
      DataTable dt = new DataTable(); 
      dt.Columns.Add(new DataColumn("Belnr")); 
      dt.Columns.Add(new DataColumn("Dtemissao")); 
      dt.Columns.Add(new DataColumn("Dtvenc")); 
      dt.Columns.Add(new DataColumn("DIASANTEC")); 
      dt.Columns.Add(new DataColumn("Valor")); 
      dt.Columns.Add(new DataColumn("VLENCARGOS")); 
      dt.Columns.Add(new DataColumn("VLFINAL")); 
      foreach (GridViewRow grdCount in valoresNovos) 
      { 
       if (grdCount != null) 
       { 
        DataRow dr = dt.NewRow(); 
        dr[0] = grdCount.Cells[1].Text; 
        dr[1] = grdCount.Cells[2].Text; 
        dr[2] = grdCount.Cells[3].Text; 
        if(grdCount.Cells[7].Text != " ") 
        { 
         dr[3] = grdCount.Cells[7].Text; 
        } 
        else 
        { 
         dr[3] = ""; 
        } 

        dr[4] = grdCount.Cells[5].Text; 
        dr[5] = grdCount.Cells[8].Text; 
        dr[6] = grdCount.Cells[5].Text; 
        dt.Rows.Add(dr); 
       } 
      } 
      grdSimulacao.DataSource = dt; 
      grdSimulacao.DataBind(); 
     } 

ответ

1

PDFsharp дает вам все, что вам нужно - на низком уровне: DrawString, DrawRectangle, DrawLine, MeasureString, ...

MigraDoc дает вам все, что вам нужно - на более высоком уровне: AddTable, AddParagraph, ...

Я бы использовал MigraDoc.
http://pdfsharp.net/wiki/HelloMigraDoc-sample.ashx

Смежные вопросы