2012-06-28 5 views
0

itextsharp를 사용하여 PDF 파일을 만듭니다. 그것은 어도비 리더 7 및 8에서 성공적으로 만들어지고 어도비 리더 9가 아닙니다.이 오류를 해결하는 데 도움을주십시오.Process.start가 서버에서 작동하지 않습니다.

이 내 일부 코드입니다 :

 try 
    { 
     //yourFont = BaseFont.CreateFont(Application.StartupPath + "/verdana.TTF", BaseFont.WINANSI, BaseFont.EMBEDDED); 
     pgSize = new iTextSharp.text.Rectangle(320, 455); 

     doc = new Document(pgSize, 15, 5, 12, 4); 
     fnt = new iTextSharp.text.Font(yourFont, 7, 3); 
     fnt1 = new iTextSharp.text.Font(yourFont, 5, 0); 
     fnt2 = new iTextSharp.text.Font(yourFont, 3, 2); 
     fnt3 = new iTextSharp.text.Font(yourFont, 4, 6); 


     PdfWriter.GetInstance(doc, new FileStream(Server.MapPath("Payslip.pdf"), FileMode.Create)); 
     //PdfWriter.GetInstance(doc, new FileStream(Server.MapPath("Payslip.pdf"), FileMode.Create)); //Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\Payslip.pdf" 

     doc.Open(); 
     DataView DView = (DataView)Session["data_value"]; 
     dtData = DView.ToTable(); 
     dr = dtData.Select("fldemp_no='" + Session["EmployeeID"].ToString() + "'"); 
     doc.NewPage(); 
     iTextSharp.text.Image ObjImg = iTextSharp.text.Image.GetInstance(Server.MapPath("~/Bin/Head.png")); 
     ObjImg.Alignment = iTextSharp.text.Image.ALIGN_CENTER; 
     ObjImg.ScaleToFit(220f, 150f); 
     ObjImg.SpacingBefore = 13f; 
     ObjImg.SpacingAfter = 1f; 
     doc.Add(ObjImg); 

     maintable = new PdfPTable(1); 
     cell = new PdfPCell(new Phrase("Pay Slip for the month of " + dr[0]["fldmonth"].ToString(), fnt1)); 
     cell.HorizontalAlignment = Element.ALIGN_CENTER; 
     cell.Border = 0; 
     maintable.AddCell(cell); 
     doc.Add(maintable); 

     maintable = new PdfPTable(2); 
     empdetright = new PdfPTable(2); 

     empdetleft = new PdfPTable(2); 
     cell = new PdfPCell(new Phrase("Emp No", fnt1)); 
     cell.Border = 0; 
     empdetright.AddCell(cell); 

     cell = new PdfPCell(new Phrase(": " + dr[0]["fldemp_no"].ToString(), fnt1)); 
     cell.Border = 0; 
     empdetright.AddCell(cell); 

     cell = new PdfPCell(new Phrase("Emp Name", fnt1)); 
     cell.Border = 0; 
     empdetright.AddCell(cell); 
     cell = new PdfPCell(new Phrase(": " + dr[0]["fldempname"].ToString(), fnt1)); 
     cell.Border = 0; 
     empdetright.AddCell(cell); 

     ....... 

     doc.Close(); 

     Process.Start(Server.MapPath("Payslip.pdf")); 

위의 코드가없는 서버에 로컬 컴퓨터에서 실행됩니다. 이 오류를 해결하는 데 도움을주십시오.

+0

제목은 가지고있는 문제와 관련이없는 것 같습니다. iTextSharp를 통해 PDF가 생성되었지만 Reader 7이나 8에서는 열리지 않는 것 같습니다. 맞습니까? – MartW

답변

0

Process.Start은 실행중인 컴퓨터 (서버)에서 파일을 열려고 시도합니다.

원하는대로되지 않습니다. 파일을 브라우저에 업로드하여 결정하게하십시오 (예 : Response.WriteFile 사용).

+0

도 같은 오류가 발생합니다. – Amulraj

+0

@Amulraj - 무슨 오류가 있습니까? 무엇과 같은가요? 질문이나 댓글에 오류를 지정하지 않았습니다. – Oded

+0

이 문서를 읽는 데 문제가 발생했으며 (117)이 문서를 여는 동안 오류가 발생했습니다. – Amulraj

관련 문제