报表查看器横向pdf导出

报表查看器横向pdf导出,pdf,reportviewer,Pdf,Reportviewer,如何设置pdf导出的环境 刷新前使用System.Drawing.Printing.PageSettings无效 Type tip = reportViewer1.GetType(); FieldInfo[] pr = tip.GetFields(BindingFlags.Instance | BindingFlags.NonPublic); System.Drawing.Printing.PageSettings ps = new System.

如何设置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);

            }
        }

您需要在报表定义中设置报表大小。以下是有同样问题的人:


最好的方法是在导出的渲染过程中传递设备信息

退房

您可以将PageHeight和PageWidth作为设备信息传递,以便为横向格式指定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()
Dim warnings As Warning()=无
将StreamID设置为字符串()=无
Dim mimeType作为字符串=无
Dim编码为字符串=无
作为字符串的Dim扩展名=无
作为字节()的Dim字节
将设备设置为字符串
deviceInf=“8.5in11in”
bytes=ReportViewer1.LocalReport.Render(“PDF”、deviceInf、mimeType、编码、扩展、流ID、警告)
将fs设置为新文件流(文件名,FileMode.Create)
fs.Write(字节,0,字节.长度)
财政司司长(关闭)

在报告的设计视图(
rdlc
)中选择报告,并在属性窗格中设置
页面大小中的以下项目

width :11in
height :8.5in

在函数
ReportViewer1.LocalReport.Render(…)
中使用第二个参数:
deviceInf
是正确的。
此外,它在呈现PDF、TIF图像的情况下是正确的,但在WORD更改
时不会产生效果,对我来说效果非常好。一行修复!或者,对于欧洲所有使用A4的人,宽度:29,7厘米,高度:21厘米。查看此帖子: