的問題
1.我們的客戶有被配置在雙面打印網絡打印機(這不能更改)。
2.我們必須在此打印機上打印A4張標籤,但不得在雙面打印模式下打印,因爲標籤繞過滾筒而變髒。
3.當我們打印標籤時,打印作業仍處於雙面模式(通過打印到文件檢查PCL輸出來驗證)。C#力的打印作業是單面(打印機默認的雙面)
線
e.PageSettings.PrinterSettings.Duplex = Duplex.Simplex;
沒有效果。
我們如何強制頁面在Simplex中打印?
我們的代碼
我們打印到使用.net的PrintDocument/PrintController類的A4打印機,如下圖所示。這段代碼來自一個測試應用程序,它可以通過一個簡單的例子來重現問題。
我們有一個自定義的PrintDocument類:
一)設置OnQueryPageSettings打印設置
protected override void OnQueryPageSettings(QueryPageSettingsEventArgs e)
{
// This setting has no effect
e.PageSettings.PrinterSettings.Duplex = Duplex.Simplex;
}
B)生成的OnPrintPage方法的頁面內容:
protected override void OnPrintPage(PrintPageEventArgs e)
{
Graphics g = e.Graphics;
int fs = 12;
FontStyle style = FontStyle.Regular;
Font baseFont = new Font("Arial", fs, style);
PointF pos = new PointF(10, 10);
g.DrawString("This is a test page", baseFont, Brushes.Black, pos);
e.HasMorePages = false;
}
踢這個關閉我們創建PrintDocument的一個實例,爲其分配StandardPrintController並調用Print():
void DoPrint()
{
MyPrintDocument mydoc = new MyPrintDocument();
PrinterSettings ps = ShowPrintDialog();
if (ps != null)
{
mydoc.PrinterSettings = ps;
StandardPrintController cont = new StandardPrintController();
mydoc.PrintController = cont;
mydoc.Print();
}
}
個
謝謝,亞當