我使用水晶报告作为我的一份报告。我需要为报告动态设置边距。边距由用户设置,因此我需要以编程方式应用边距。
我使用以下代码以编程方式设置边距。
ReportDocument rd = new ReportDocument();
PageMargins pageMargins = new PageMargins();
pageMargins.leftMargin = 25;
pageMargins.topMargin = 100;
pageMargins.rightMargin = 25;
pageMargins.bottomMargin = 50;
rd.PrintOptions.ApplyPageMargins(pageMargins);
然后向用户显示打印预览,然后用户可以打印。我使用下面的代码来显示预览。
Response.Buffer = false;
Response.ClearHeaders();
Response.ClearContent();
rd.ExportToHttpResponse(ExportFormatType.PortableDocFormat, System.Web.HttpContext.Current.Response, false, "Print");
以上不适合我。它不适用边距(当我从设计 - >页面设置静态设置边距时,这同样适用)。它显示内容,就好像动态使用时不应用边距。我附上了图片,看它是如何显示为预览的。
任何人都可以帮我解决可能出现的问题吗?为什么没有应用保证金?
答案 0 :(得分:0)
我找到了解决这个问题的方法。我之前使用的代码只有一点变化。我使用下面的代码。
ReportDocument rd = new ReportDocument();
PageMargins margins;
// Get the PageMargins structure and set the
// margins for the report.
margins = rd.PrintOptions.PageMargins;
margins.bottomMargin = 350;
margins.leftMargin = 600;
margins.rightMargin = 350;
margins.topMargin = 300;
// Apply the page margins.
rd.PrintOptions.ApplyPageMargins(margins);
所以上面的工作正常。我们只需要获取报表文档页边距并设置边距而不是 PageMargins 对象的新初始化。