SSRS报告拒绝以横向打印

时间:2018-06-05 23:40:54

标签: reporting-services sql-server-2014-express ssrs-2014

这是在WinForms应用程序中使用ReportViewer。原始应用程序是在2006年写回来的。如果直接从报表服务器上运行,该报告将打印出横向图,但这对我的用例不起作用。

我失去了理智。这应该是容易和明显的。报告中有一个横向设置,有合法的页面大小。报告应在整个页面上打印。但是NOOOOOOO .....我和我一直在努力工作几个小时。我终于把它归结为可能引发某些人知识和经验的东西。首先是报告的报告属性设置页面: enter image description here

我故意将纸张尺寸设置为自定义,并且尺寸不完全合法,因为我的报告确实是徽章,完全不标准,而且我要显示的相同代码工作正常。将此更改为合法的景观和14宽8.5高度没有区别。现在,这是在推送报表查看器上的打印按钮时运行的代码。

private void Print(bool showDialog)
{
    if (_streams == null || _streams.Count == 0)
        return;

    PrintDocument printDoc = new PrintDocument();
    //printDoc.PrinterSettings.PrinterName = printerName;
    printDoc.PrinterSettings.Copies = _report.Copies;
    //if (!printDoc.PrinterSettings.IsValid)
    //{
    //    MessageBox.Show("error");
    //    return;
    //}


    //Reports like Registration and Overview Badges have custom page
    //sizes defined in the RDL file, grab that PaperSize and assign 
    //it to the current print document.
    ReportPageSettings settings = reportViewer.ServerReport.GetDefaultPageSettings();
    printDoc.DefaultPageSettings.PaperSize = settings.PaperSize;

    printDoc.PrintPage += new PrintPageEventHandler(PrintPage);

    //printDoc.Print();
    PrintDialog dlg = new PrintDialog();
    dlg.Document = printDoc;
    if (showDialog == false || dlg.ShowDialog() == DialogResult.OK)
        printDoc.Print();
}

当它运行并且PrintDoc.DefaultPageSettings.PaperSize = settings.PaperSize中断时,立即窗口显示:

? settings
{Microsoft.Reporting.WinForms.ReportPageSettings}
    IsLandscape: true
    Margins: {[Margins Left=50 Right=50 Top=0 Bottom=0]}
    PaperSize: {[PaperSize  Kind=Custom Height=1350 Width=825]}

正如您所看到的,高度和宽度与我在报告属性中输入的内容相反。我无法解决这个问题。结果是报告看起来像这样: enter image description here 如果我直接从报表服务器运行相同的报表而不涉及reportviewer,它将按预期运行: enter image description here

0 个答案:

没有答案