Отчет SSRS, переданный в виде изображения и распечатанный, не соответствует экспорту в PDF

У нас есть клиент, который передает отчеты SSRS в два приложения: одно в консоль, а второе в приложения WinForms. Консольное приложение автоматически создает последний отчет для пользователей и имеет возможность автоматической печати того же отчета на выбранном по умолчанию принтере. При экспорте отчета в PDF отчет выглядит идеально, но когда отчет распечатывается автоматически, размер текста немного уменьшается, расстояние между текстом уменьшается, а некоторые места размещения отличаются от автоматически сгенерированного PDF.

Когда отчет печатается автоматически, мы передаем отчет как изображение, а затем создаем собственный метод PrintPage для создания прямоугольника, затем устанавливаем изображение внутри прямоугольника и затем отправляем изображение на печать (см. код ниже).

private void PrintPage(object sender, PrintPageEventArgs ev)
    {

        var pageImage = new Metafile(_mStreams[_currentPageIndex]);

        // Adjust rectangular area with printer margins.
        var adjustedRect = new Rectangle(
            ev.PageBounds.Left - (int)ev.PageSettings.HardMarginX,
            ev.PageBounds.Top - (int)ev.PageSettings.HardMarginY,
            ev.PageBounds.Width,
            ev.PageBounds.Height);

        // Draw a white background for the report
        ev.Graphics.FillRectangle(Brushes.White, adjustedRect);

        // Draw the report content
        ev.Graphics.DrawImage(pageImage, adjustedRect);

        // Prepare for the next page. Make sure we haven't hit the end.
        _currentPageIndex++;
        ev.HasMorePages = (_currentPageIndex < _mStreams.Count);

    }

Поля и размер страницы совпадают, когда процесс завершен, но явно существуют различия в том, как текст отображается на копии, напечатанной автоматически. Ниже приведены снимки экрана двух отчетов, где вы можете видеть, что интервалы и размещение части текста немного отличаются от автоматически сгенерированного отчета в формате PDF. Эта проблема больше влияет на отчеты, когда речь идет о больших 50-страничных документах, где автоматически сгенерированный PDF-файл содержит на несколько страниц больше, чем экспорт изображения.

Автоматически сгенерированный снимок экрана

Автоматически созданный снимок экрана

Автоматически напечатанный снимок экрана

Автоматическая печать снимка экрана

Любая помощь в этом очень ценится, спасибо.


person JConiff    schedule 29.08.2017    source источник


Ответы (1)


Поэтому я восстановил работу, отказавшись от старой функции печати в пользу использования Adobe для автоматической печати недавно созданного отчета. Суть моей проблемы заключалась в повторном экспорте отчета в виде изображения из SSRS. Это привело к тому, что все форматирование и стили были скорректированы в соответствии с этим форматом.

person JConiff    schedule 06.09.2017