要使用 FastReport 在网页中直接打印,而不是预览,您可以按照以下步骤进行操作:\n\n1. 首先,确保您已在 WebForm 中正确设置了 FastReport,并且可以在预览中正确显示报表。\n\n2. 创建一个新的按钮或链接,用于触发打印操作。\n\n3. 在按钮或链接的事件处理程序中,使用以下代码来直接打印报表:\n\ncsharp\nusing FastReport.Export.Pdf;\nusing FastReport.Utils;\nusing System.IO;\n\nprotected void btnPrint_Click(object sender, EventArgs e)\n{\n // 创建报表对象\n Report report = new Report();\n \n // 加载报表模板文件\n report.Load(Server.MapPath("report.frx"));\n \n // 设置参数、数据源等(可选)\n report.SetParameterValue("param1", "value1");\n report.SetParameterValue("param2", "value2");\n // report.SetDataSource(...);\n \n // 渲染报表\n report.Prepare();\n \n // 导出为PDF文件\n PDFExport export = new PDFExport();\n MemoryStream stream = new MemoryStream();\n report.Export(export, stream);\n \n // 将PDF文件发送到默认打印机\n PrinterSettings printerSettings = new PrinterSettings();\n printerSettings.PrinterName = printerSettings.PrinterName; // 设置为默认打印机\n \n using (PrintDocument printDocument = new PrintDocument())\n {\n printDocument.PrinterSettings = printerSettings;\n printDocument.PrinterSettings.DefaultPageSettings.Landscape = true; // 设置打印方向(可选)\n printDocument.DefaultPageSettings.Margins = new Margins(50, 50, 50, 50); // 设置打印边距(可选)\n printDocument.PrintPage += (s, ev) =>\n {\n using (PdfReader reader = new PdfReader(stream))\n {\n PdfImportedPage page = writer.GetImportedPage(reader, 1);\n ev.Graphics.DrawImage(page, 0, 0, ev.PageBounds.Width, ev.PageBounds.Height);\n }\n };\n printDocument.Print();\n }\n}\n\n\n请注意,上述代码中的报表模板文件路径应根据您的实际情况进行更改。\n\n此外,确保您的IIS应用程序池具有足够的权限来访问和打印报表文件,并且默认打印机在IIS服务器上也可用。\n\n希望这可以帮助到您!


原文地址: https://www.cveoy.top/t/topic/pL8W 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录