如何设置pdf导出的格局?
在刷新之前使用System.Drawing.Printing.PageSettings不起作用。
Type tip = reportViewer1.GetType();
FieldInfo[] pr = tip.GetFields(BindingFlags.Instance | BindingFlags.NonPublic);
System.Drawing.Printing.PageSettings ps = new System.Drawing.Printing.PageSettings();
ps.Landscape = true;
// ps.PaperSource=
foreach (FieldInfo item in pr)
{
if (item.Name == "m_pageSettings")
{
item.SetValue(reportViewer1, ps);
}
}
答案 0 :(得分:8)
在报告的设计视图中(rdlc
)选择报告,然后在属性窗格中设置page size
width :11in
height :8.5in
答案 1 :(得分:5)
最好的方法是在渲染渲染过程中传递DeviceInformation。
查看http://msdn.microsoft.com/en-us/library/ms154682.aspx
您可以将PageHeight和PageWidth作为DeviceInformation传递,因此您可以为横向格式指定8.5x11。
下面的代码示例:
Dim warnings As Warning() = Nothing
Dim streamids As String() = Nothing
Dim mimeType As String = Nothing
Dim encoding As String = Nothing
Dim extension As String = Nothing
Dim bytes As Byte()
Dim deviceInf as String
deviceInf = "<DeviceInfo><PageHeight>8.5in</PageHeight><PageWidth>11in</PageWidth></DeviceInfo>"
bytes = ReportViewer1.LocalReport.Render("PDF", deviceInf, mimeType, encoding, extension, streamids, warnings)
Dim fs As New FileStream(FILENAME, FileMode.Create)
fs.Write(bytes, 0, bytes.Length)
fs.Close()
答案 2 :(得分:3)
您需要在报告定义中设置报告大小。这是有同样问题的人:
答案 3 :(得分:-1)
使用函数deviceInf
中的第二个参数:ReportViewer1.LocalReport.Render(..)
是正确的。
此外,它是正确的,以便渲染PDF,TIF图像,但不影响WORD