2016-09-09 4 views
0

나는 확인을위한 페이지가 있습니다. 기본적으로 페이지와 동일한 값을 가진 PDF 파일을 생성해야합니다. 로고와 헤더를 넣어야합니다. gridview를 전달해야합니다. 세션에서 오는 값, 나는 PDFsharp로 이것을하는 방법을 알아 내려고 노력하고 있지만 길을 찾을 수 없습니다. 그것은 확실히 그냥 값을 표시하는 멋진 그리드를 할 필요가 없습니다,PDF보기 격자로 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"에서 이동하는 데 필요한 값은 다음과 같습니다

이 내 현재 PDF입니다 . , AddTable, AddParagraph : 높은 수준에 -

MigraDoc는 당신이 필요로하는 모든을 제공합니다 ...하여 drawString, DrawRectangle, DrawLine, MeasureString : 낮은 수준에 -

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(); 
     } 

답변