我的报告显示在网页上,用户已将此网页打印为PDF。我需要的是当用户点击按钮时网页自动打印到PDF(保存)到网站服务器上的某个位置。
iTextSharp似乎并没有让我只是在打印到PDF(保持css等)时完全保存PDF的样子,还有一些许可并发症。 PrinceXML看起来不错,但太贵了。
是否无法打开新的aspx页面然后将其打印到PDF服务器端?
答案 0 :(得分:0)
您可以使用内置的RLDC报告。它是免费的,具有不错的设计和功能,并允许您打印到PDF。您不需要保存PDF文件并担心管理和删除它,只需将其打印到流中并使用该流进行下载。
这样的事情:
Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string extension;
byte[] bytes = reportViewer.LocalReport.Render("PDF", null, out mimeType, out encoding,
out extension, out streamids, out warnings);
然后将bytes
写入下载流。
Response.Buffer = true;
Response.Clear();
Response.ContentType = mimeType;
Response.AddHeader("content-disposition", "attachment; filename= filename" + "." + extension);
Response.OutputStream.Write(bytes, 0, bytes.Length);
Response.Flush();
Response.End();