我們有一個將SSRS報告流式傳輸到兩個應用程序的客戶端,一個是控制檯,另一個是WinForms應用程序。控制檯應用程序會自動爲用戶生成最新報告,並且可以選擇將相同報告自動打印到默認選定打印機。將報告導出爲PDF時,報告看起來很完美,但是當自動打印報告時,文本大小似乎略微縮小,文本間距縮小,並且某些位置與「自動生成的PDF」相比有所不同。SSRS報告以圖像形式流式傳輸並且不匹配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報告中某些文本的間距和位置有所不同。如果自動生成的PDF包含比圖像導出更多頁面的頁面大於50頁的文檔,則此問題會影響報表。
任何幫助,這是極大的讚賞,謝謝。