首页 新闻 会员 周边

一个水晶报表批量打印的问题

0
悬赏园豆:200 [已解决问题] 解决于 2014-01-24 14:43

开发环境 VS2010+ CRforVS_13_0_7(水晶报表)

需要实现的是功能是 可以实现报表的批量打印,或者导出所有报表到一个PDF文件,提供用户下载!

 

一份报告包含十几个不同模版的水晶报表,需要实现批量打印报表的功能,大家帮忙提供一下可行的解决方法,有实例源码最好,ASP.NET Web方式最佳。

< >
分享
最佳答案
1

最好还是先把所有报表生成 PDF再供预览(我的项目是这样处理的) 

生成PDF后再将多个PDF合并成一个PDF文件,(报表合并比PDF合并复杂)

代码明天贴出吧!

收获园豆:200
Zery | 大侠五级 |园豆:6151 | 2014-01-23 10:31

我的思路也是这样的,求实例或者实现源码!能实现功能一定重谢!

DotNet码农 | 园豆:33 (初学一级) | 2014-01-23 14:58

@DotNet码农: 

报表转PDF比较简单就不贴了 重点在合并PDF的代码

    public class CombinePDF
    {
        #region 调用方式
        //e.g:
        //CombinePDF combinePDF = new CombinePDF();
        //string[] pdflist = new string[2];
        //pdflist[0] = "C:\\RPT01.pdf";
        //pdflist[1] = "C:\\RPT02.pdf";
        //combinePDF.mergePDFFiles(pdflist, "newpdf.pdf");
        #endregion

        /// <summary> 合併PDF檔(集合) </summary> 
        /// <param name="fileList">欲合併PDF檔之集合(一筆以上)</param>
        /// <param name="outMergeFile">合併後的檔名</param> 
        public bool mergePDFFiles(string[] fileList, string outMergeFile)
        {
            try
            {
                if (fileList.Length <= 0)
                {
                    return false;
                }
                //outMergeFile = HttpContext.Current.Server.MapPath("Upload/" + outMergeFile);
                PdfReader reader;
                Document document = new Document();
                PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(outMergeFile, FileMode.Create, FileAccess.Write, FileShare.ReadWrite));
                document.Open();
                PdfContentByte cb = writer.DirectContent;
                PdfImportedPage newPage;
                for (int i = 0; i < fileList.Length; i++)
                {
                    reader = new PdfReader(fileList[i]); 
                    int iPageNum = reader.NumberOfPages;
                    for (int j = 1; j <= iPageNum; j++)
                    {
                        document.NewPage();
                        newPage = writer.GetImportedPage(reader, j);
                        cb.AddTemplate(newPage, 0, 0);
                    }
                }

                document.Close();
                writer.Close();
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
        }
    }
Zery | 园豆:6151 (大侠五级) | 2014-01-24 09:27

@Zery: 合并后如何区分每个报表打印的数量呢

小哑巴 | 园豆:6 (初学一级) | 2016-04-18 11:53
其他回答(1)
0

还有源码吗?我也想批量打印不同的报表

小哑巴 | 园豆:6 (初学一级) | 2016-04-18 11:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册