2017-08-29 1 views
1

Wir haben einen Client, der SSRS-Berichte in zwei Anwendungen, eine eine Konsole und die zweite eine WinForms-Anwendungen streamen. Die Konsolenanwendung generiert automatisch den neuesten Bericht für die Benutzer und hat die Option, denselben Bericht automatisch an den standardmäßig ausgewählten Drucker zu senden. Wenn der Bericht in PDF exportiert wird, sieht der Bericht perfekt aus, aber wenn der Bericht automatisch gedruckt wird, scheint die Textgröße etwas verkleinert zu werden, der Textabstand ist reduziert und ein Teil der Platzierung variiert im Vergleich zur automatisch generierten PDF.SSRS-Bericht als Bild gestreamt und gedruckt entspricht nicht PDF-Export

Wenn ein Bericht automatisch gedruckt wird, streamen wir den Bericht als Bild und erstellen dann eine benutzerdefinierte PrintPage-Methode zum Erstellen eines Rechtecks, setzen das Bild innerhalb des Rechtecks ​​und senden das Bild zum Drucken (siehe nachfolgenden Code).

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); 

    } 

Die Ränder und Dimensionierung der Match-Seite, wenn der Prozess aber deutlich abgeschlossen ist, gibt es Unterschiede, wie der Text auf der Auto gedruckte Kopie angezeigt wird. Im Folgenden finden Sie Screenshots der beiden Berichte, in denen Sie erkennen können, dass der Abstand und die Platzierung eines Teils des Textes ein wenig vom automatisch generierten PDF-Bericht abweichen. Dieses Problem wirkt sich auf die Berichte mit mehr als 50 Seiten aus, bei denen die automatisch generierte PDF-Datei einige Seiten mehr enthält als der Image-Export.

Auto Generated Screen Shot

Auto Printed Screen Shot

Jede mögliche Hilfe bei diesem sehr geschätzt, Danke.

Antwort

0

So habe ich es wieder arbeiten durch Scraping der alten Druckfunktionen zugunsten der Verwendung von Adobe, um den kürzlich erstellten Bericht automatisch zu drucken. Der Kern meines Problems bestand darin, den Bericht als Bild von SSRS wieder zu exportieren. Dadurch wurden alle Formatierungen und Stile an dieses Format angepasst.