2017-08-29 170 views
1

我們有一個將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頁的文檔,則此問題會影響報表。

Auto Generated Screen Shot

Auto Printed Screen Shot

任何幫助,這是極大的讚賞,謝謝。

回答

0

因此,我通過刮取舊的打印功能,轉而使用Adobe來自動打印最近生成的報告。我的問題的癥結在於將報告作爲來自SSRS的圖像重新導出。這導致所有格式和樣式被調整爲匹配該格式。

相關問題