0

itextsharp を使用して PDF ファイルを作成します。正常に作成され、Adobe Reader 7 および 8 ではなく、Adobe Reader 9 で開きます。このエラーの修正を手伝ってください。

これは私の部分的なコードです:

      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"));

上記のコードは、サーバーではなくローカル マシンで実行されます。このエラーを修正するのを手伝ってください..

4

1 に答える 1

0

Process.Start実行中のコンピューター (サーバー) でファイルを開こうとします。

これはあなたが望むものである可能性は低いです。ファイルをブラウザにアップロードして、ブラウザに決定させる必要があります(Response.WriteFileたとえば、を使用)。

于 2012-06-28T11:52:18.997 に答える