2013-06-19 169 views
1

我有一些報告是在橫向模式下設計的,在預覽和通過VB6 Crystal控件打印時工作正常。在橫向打印水晶報告到一臺特定的打印機

我最近被要求允許打印機被更改,因此添加了代碼來枚舉打印機,並設置控件的PrinterDriver,PrinterNamePrinterPort屬性。 雖然這適用於肖像報告,但指定除默認打印機以外的任何內容都會導致報告查看器強制報告進入所選打印機的默認方向。

設置Printer.OrientationvbPRORLandscape對水晶沒有影響,因爲它使用自己的打印表面。 水晶觀衆也沒有辦法指定一個方向(它的設置景觀設計師)

微軟KB198901具有示例代碼更改默認的方向(改變使用PRINTER_ACCESS_USE後),但這個影響其他任何將訪問該打印機,直到它再次變回。

是否有任何方法可以打印到特定的打印機並保持報告的橫向方向,而無需在控件使用期間臨時將打印機的系統範圍配置更改爲橫向?

這些報告在Crystal 4.6中設計,並由Crystal 8.0查看器控件打印。

+0

我會對比「緩存設置並在使用後恢復」更好的回答感興趣。但我相信這些設置是存儲和使用在全球打印後臺處理程序級別(整個PC每個打印機一組)。我很高興被證明這是不正確的,但! – Bob77

回答

0

我想你正在設置CRAXDRT.Report的PrinterDriver,PrinterName和PrinterPort屬性。同一個對象具有PaperSize和PaperOrientation屬性。你嘗試設置它們嗎?

+0

我使用的是舊的VB6'Crystal.CrystalReport'控件,而不是'CRAXDRT.Report'。它似乎沒有公開任何方向屬性。 – Deanna

+0

什麼是Crystal.CrystalReport控件?這是CrystalViewer嗎?對不起,我很久以前就用過Crystal 8了。 – Lan

+0

這是與VB6提供(或兼容)的查看器控件。 – Deanna