报告查看器横向pdf导出

Jef*_*rey 8 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.Drawing.Printing.PageSettings();
        ps.Landscape = true;

       // ps.PaperSource=
        foreach (FieldInfo item in pr)
        {
            if (item.Name == "m_pageSettings")
            {
                item.SetValue(reportViewer1, ps);

            }
        }
Run Code Online (Sandbox Code Playgroud)

Far*_*ker 8

在报表的设计视图中(rdlc)选择报表,然后在属性窗格中设置以下项目page size

width :11in
height :8.5in
Run Code Online (Sandbox Code Playgroud)

  • 或者,对于欧洲每个人使用A4,宽度:29,7厘米,高度:21厘米. (5认同)

jga*_*ant 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()
Run Code Online (Sandbox Code Playgroud)


Shi*_*iji 3

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

http://forums.asp.net/t/1138481.aspx