簡體   English   中英

使用c#打印進紙

[英]Form feed in c# printing

我正在嘗試進行換頁並在打印時跳過1頁,但是使用下面的代碼行,我無法進行換頁。

private void InserPageBreak(System.Drawing.Printing.PrintPageEventArgs e)
{
      Font sFont = new Font("Arial", 10);
      Brush sBrush = Brushes.White;
      e.Graphics.DrawString("\f", sFont, sBrush, 0, 0);
}

我使用PrintDialog打印頁面內容。 我正在使用“\\ f”C#的換頁符。

關於如何實現/使這個表單生成工作的任何想法?

PS:我甚至試過這個:

// ASCII代碼12 - 打印機的換頁控制代碼。

 string test = char.ConvertFromUtf32(12);
 e.Graphics.DrawString(test, sFont, sBrush, 0, 0);

內部c#將其轉換為“\\ f”,但沒有執行換頁,任何已實現“\\ f”的人,請分享您的想法。

在.NET中,應使用PrintPageEventArgs.HasMorePage屬性將表單訂閱源發送到打印機。 通過調用e.Graphics.DrawString(“\\ f”,sFont,sBrush,0,0),您只需將文本呈現給要打印的文檔,打印機永遠不會將其解釋為換頁。

由於您知道要中斷頁面的位置,而不是調用InserPageBreak方法,因此請在PrintPage事件處理程序中設置PrintPageEventArgs.HasMorePages = true。 這將向打印機發送換頁,您的PrintPage事件將繼續被觸發,直到您設置HasMorePages = false。

我希望這有幫助。 查看如何實現PrintPage事件處理程序可能很有用。

例:

使用BeginPrint處理程序在打印前初始化數據

    void _document_BeginPrint(object sender, PrintEventArgs e)
    {
        //generate some dummy strings to print
        _pageData = new List<string>()
                {
                    "Page 1 Data",
                    "Page 2 Data",
                    "Page 3 Data",
                };

        // get enumerator for dummy strings
        _pageEnumerator = _pageData.GetEnumerator();

        //position to first string to print (i.e. first page)
        _pageEnumerator.MoveNext();
    }

在PrintPage處理程序中,一次打印一個頁面,並設置HasMorePages以指示是否還有另一個要打印的頁面。 在此示例中,將打印三個頁面,每頁一個字符串。 在第3頁之后,_pageEnumerator.MoveNext()將返回false,結束打印作業。

    void _document_PrintPage(object sender, PrintPageEventArgs e)
    {
        Font sFont = new Font("Arial", 10);
        Brush sBrush = Brushes.Black;

        //print current page
        e.Graphics.DrawString(_pageEnumerator.Current, sFont, sBrush, 10, 10);

        // advance enumerator to determine if we have more pages.
        e.HasMorePages = _pageEnumerator.MoveNext();
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM