RDLC報表列印時出現方向問題
阿新 • • 發佈:2019-02-09
【印表機紙張設定】
Z-Desinger 888 TT 預設設定的紙張格式是Portrait
【報表紙張設定】
RDLC紙張設定是橫向
【列印結果】
出現縱向多頁錯亂問題,方向和設定的不一樣,原因是本身印表機的問題,報表設定的方向沒有辦法修改,如果修改方西后寬度和高度會發生改變,系統預設當寬度大於高度時會自動橫向列印,那麼可以通過以下方式解決
private static void PrintSetting(short copies) { if (m_streams == null || m_streams.Count == 0) { //MessageBox.Show("錯誤:沒有檢測到列印資料流"); _falg = false; //return; throw new PrintException("沒有檢測到列印資料流"); } //宣告PrintDocument物件用於資料的列印 PrintDocument printDoc = new PrintDocument(); //獲取配置檔案的清單印表機名稱 System.Configuration.AppSettingsReader appSettings = new System.Configuration.AppSettingsReader(); printDoc.PrinterSettings.PrinterName = (new System.Drawing.Printing.PrintDocument()).PrinterSettings.PrinterName; //printDoc.PrinterSettings.PrinterName = "1"; printDoc.PrintController = new System.Drawing.Printing.StandardPrintController();//指定印表機不顯示頁碼 //判斷指定的印表機是否可用 if (!printDoc.PrinterSettings.IsValid) { //throw new Exception("錯誤:找不到印表機"); //MessageBox.Show("錯誤:找不到印表機"); throw new PrintException("沒有檢測到列印資料流"); _falg = false; return; } else { //ZDesinger 888 TT預設的列印方向是 Portrait 因此不需要設定Landscape屬性值 //printDoc.DefaultPageSettings.Landscape = isLandSapces; //宣告PrintDocument物件的PrintPage事件,具體的列印操作需要在這個事件中處理。 printDoc.PrintPage += new PrintPageEventHandler(PrintPage); m_currentPageIndex = 0; //設定印表機列印份數 /*if (paperSize != null) { printDoc.DefaultPageSettings.PaperSize = paperSize; }*/ printDoc.PrinterSettings.Copies = copies; //printDoc.PrinterSettings. //執行列印操作,Print方法將觸發PrintPage事件。 printDoc.Print(); } }