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;
}
![]()
}
随贴广告(测试期)
打印 | 张贴于 2005-10-12 22:39:00 | Tag:暂无标签


Doc theDoc 
}
}
留言反馈