【问题标题】:Creating PDF file through ASP.NET通过 ASP.NET 创建 PDF 文件
【发布时间】:2009-04-25 07:00:03
【问题描述】:

通过 Crystal Reports 以外的 ASP.NET 应用程序创建 PDF 文件需要什么?

【问题讨论】:

    标签: asp.net pdf


    【解决方案1】:

    您可以使用 iText#,它基于类似的 Java 项目。

    http://itextsharp.sourceforge.net/

    您不需要将 Crystal Reports 与此结合使用。如果您需要更强大(但价格昂贵)的东西,我已经用它来处理复杂的 PDF 取得了巨大的成功:

    http://www.pdflib.com/

    【讨论】:

      【解决方案2】:

      一个可能的库是iTextSharp。显然 iText 是一笔巨大的交易,但我在使用 iTextSharp 处理某个需求时并没有真正看到它,但那是几年前的事了。

      【讨论】:

        【解决方案3】:

        最简单的方法是使用第三方库。我过去使用过 ASPOSE.PDF,效果很好。

        http://www.aspose.com/categories/file-format-components/aspose.pdf-for-.net-and-java/default.aspx

        我也尝试过 PDF Sharp,它是开源的,但没有那么灵活。

        http://pdfsharp.com/PDFsharp/

        【讨论】:

          【解决方案4】:

          你有几个开源选项here

          【讨论】:

            【解决方案5】:
            protected void btnReport_Click(object sender, EventArgs e)
            
            {
            
                showReport();
            
            }
            
            private void showReport()
            
            {
            
                DataTable dat = Reports.getPartyWiseJobStatusReport(Convert.ToInt16(ddlDivName.SelectedValue), Convert.ToInt16(ddlJobGroup.SelectedValue), Convert.ToInt16(ddlProjectStatus.SelectedValue));
            
                ReportDocument rptdoc = new ReportDocument();
            
                string path = Server.MapPath("~/Reports/rptPartyWiseJobStatus.rpt");
            
                rptdoc.Load(path);
            
                rptdoc.SetDataSource(dat);
            
                //rptdoc.SetParameterValue(0, ddlDivName.SelectedItem.Text);
                //ExportOptions exportOpts1 = rptdoc.ExportOptions;
                rptdoc.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
            
                rptdoc.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
            
                rptdoc.ExportOptions.DestinationOptions = new DiskFileDestinationOptions();
            
                ((DiskFileDestinationOptions)rptdoc.ExportOptions.DestinationOptions).DiskFileName = Server.MapPath("~/Reports/rptPartyWiseJobStatus.pdf");
            
                rptdoc.Export();
            
                rptdoc.Close();
            
                rptdoc.Dispose();
            
                Response.ClearContent();
            
                Response.ClearHeaders();
            
                Response.ContentType = "application/pdf";
            
                Response.AppendHeader("Content-Disposition", "attachment; filename=rptPartyWiseJobStatus.pdf");
            
                Response.WriteFile("~/Reports/rptPartyWiseJobStatus.pdf");
            
                Response.Flush();
            
                Response.Close();
            
                File.Delete(Server.MapPath("~/Reports/rptPartyWiseJobStatus.pdf"));
            
            }
            

            public static DataTable getPartyWiseJobStatusReport(Int16 DivisionID, Int16 JobGroup, Int16 ProjectStatus)

            { string _procName = "sp_T_Proposal_SelectPartyWiseJobStatus";

                DataTable dt1 = new DataTable();
            
                Database objDatabase = DatabaseFactory.CreateDatabase();
            
                DbCommand objDbCommand = objDatabase.GetStoredProcCommand(_procName);
            
                objDatabase.AddInParameter(objDbCommand, "@DivisionID", DbType.Int16, DivisionID);
            
                objDatabase.AddInParameter(objDbCommand, "@JobGroup", DbType.Int16, JobGroup);
            
                objDatabase.AddInParameter(objDbCommand, "@ProjectStatus", DbType.Int16, ProjectStatus);
            
                using (IDataReader dr = objDatabase.ExecuteReader(objDbCommand))
            
                {
            
                    dt1.Load(dr);
            
                }
            
                return dt1;
            
            }
            

            【讨论】:

            • 只有代码的答案很难理解,当有人试图真正弄清楚一些事情时,而不仅仅是“给我看代码”。
            猜你喜欢
            • 2015-12-19
            • 2011-03-16
            • 2011-06-23
            • 1970-01-01
            • 1970-01-01
            • 2015-07-30
            • 1970-01-01
            • 2010-12-10
            • 2013-03-17
            相关资源
            最近更新 更多