日期:2014-05-18  浏览次数:20528 次

生成PDF文件遇到问题,请高手解决
protected   void   Button1_Click(object   sender,   EventArgs   e)
                {
                        dtb   =   (DataTable)Session[ "List "];
                        CreatePDFheader(Server.MapPath( "/pdf/1.pdf "),   Server.MapPath( "/images/logo-binhon2.gif "),   "PDF页脚 ");
                        TableToPDF.ConvertDataTableToPDF(dtb,   Convert.ToString(Server.MapPath( "/pdf/1.pdf ")),   Convert.ToString( "C:\\WINDOWS\\Fonts\\simsun.ttc,1 "),   12);
                }

现在这个函数里面调用的两函数,但使终只有一个函数执行成功.
问题是:注释掉函数TableToPDF.ConvertDataTableToPDF()时,CreatePDFheader()就能执行成功(只生成PDF出现页眉和页脚),如果加上函数TableToPDF.ConvertDataTableToPDF()时,就只有函数ConvertDataTableToPDF()执行成功(只生成数据表的内容).

------解决方案--------------------
问题看上去像是被覆盖掉
google一下你那两个方法的出处,应该出至这里
http://pdfhome.hope.com.cn/Article.aspx?CID=bf51a5b6-78a5-4fa3-9310-16e04aee8c78&AID=0d9c1524-64a2-4dd2-b26f-930687949eb1

看到里面
//注意FileMode-Create表示如果目标文件不存在,则创建,如果已存在,则覆盖。
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(PDFFilePath, FileMode.Create));
问题就在这里,这两个方法都是覆盖文件,而不是追加文件啊
------解决方案--------------------
把两个函数合成一个函数就行了