讨饭天涯

欢迎参观讨饭猫的垃圾桶
随笔 - 27, 评论 - 270, 引用 - 84

导航

工具

每月存档

广告



访客

在后台产生的PDF直接发送到IE

ONLINE 打印固定格式的报表,例如政府、银行、保险等用的专用表格,最好的方法应该是后台产生PDF,然后发送到流览器中打印。

1 报表的PDF文件,最好能够向相应部门索取。我不知道国内如何,米国一般都提供DOWNLOAD。

2 后台PDF生成,需要专用的API,大多数好的API都不是 FREE 的。目前使用比较广泛的是 ASPOSE 和 ABCPDF,都是完全商业化的软件,完美支持包括.net在内的各种环境,技术支持和文档资料都做得很好。当然也有一些开源的

3 用这段程序把所有 FIELD 的名字打印出来

private void PDFFields() { Doc theDoc = new Doc(); theDoc.Read("D:/share/c4.pdf"); foreach (Field theField in theDoc.Form.Fields) { theField.Value = theField.Name; } theDoc.Save("D:/share/c4fields.pdf"); }

打印一份放在手边吧。

4 然后你的程序就可以把数据写进去,把PDF直接发送到IE窗口中,不用生成临时文件,也不用REDIRECT。ACROBAT READER 插件可以让用户象本地文件一样地操作PDF。

private bool createPDF() { try { Doc theDoc = new Doc(); theDoc.Read(Server.MapPath("/eClinic/ec/images/c4.pdf")); theDoc.Form["10"].Value="hahaha"; byte[] theData = theDoc.GetData(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "filename=C4Print"+billingID+".pdf"); Response.AddHeader("content-length", theData.Length.ToString()); Response.BinaryWrite(theData); Response.Flush(); Response.Close(); Response.End(); return true; } catch(System.Web.HttpException ehttp) { showText.Text="Create PDF fail: "+ehttp.Message+"\r\nFull message:\r\n"+ehttp.ToString(); return false; } }

posted on 2005-10-12 22:39:00 by cafecat  评论(6) 阅读(5059)

Powered by: Joycode MVC Blogger System