C# 点阵打印机:奇数页方向更改为纵向

C# 点阵打印机:奇数页方向更改为纵向,c#,winforms,printing,C#,Winforms,Printing,打印机以纵向方向打印每一页 private void Form1_Loaded(object sender, EventArgs e) { PaperSize ps = new PaperSize("Custom", 700, 325); printDocument.DefaultPageSettings.PaperSize = ps; label1.Text = Convert.ToString(printDocument.DefaultPageSettings.Pap

打印机以纵向方向打印每一页

private void Form1_Loaded(object sender, EventArgs e)
{
    PaperSize ps = new PaperSize("Custom", 700, 325);
    printDocument.DefaultPageSettings.PaperSize = ps;
    label1.Text = Convert.ToString(printDocument.DefaultPageSettings.PaperSize);
    //printDocument.DefaultPageSettings.Landscape = true;
    printDocument.PrinterSettings.DefaultPageSettings.Landscape = true;
}

 private void DrawGridBody(Graphics g, int y_value)
 {
        int x_value;

        for (int i = 0; (i < NUM_ROWS_PER_PAGE) && ((i+m_printedRows) < ((DataTable)dataGridView.DataSource).Rows.Count); ++i)
        {
            DataRow dr = ((DataTable)dataGridView.DataSource).Rows[i + m_printedRows];
            x_value = 0;

            string text = dr.ItemArray.ElementAt(0).ToString();
            g.DrawString(text+"**", this.Font, Brushes.Black, (float)x_value, (float)y_value + 10f);
            y_value += ROW_HEIGHT;

            g.DrawString("page " + Convert.ToString(m_printedRows), new Font("Lucidia Console", 14, FontStyle.Bold), Brushes.Black, 60, 10);

            g.DrawString("1 " + dr.ItemArray.ElementAt(0).ToString(), new Font("Lucidia Console", 10), Brushes.Black, new Point(370, 20));
            g.DrawString("2 " + dr.ItemArray.ElementAt(0).ToString(), new Font("Lucidia Console", 10), Brushes.Black, new Point(390, 46));
            g.DrawString("3 " + dr.ItemArray.ElementAt(0).ToString(), new Font("Lucidia Console", 10), Brushes.Black, new Point(30, 40));
            g.DrawString(dr.ItemArray.ElementAt(1).ToString(), new Font("Lucidia Console", 10), Brushes.Black, new Point(70, 180));
            g.DrawString(dr.ItemArray.ElementAt(2).ToString() + " " + dr.ItemArray.ElementAt(3).ToString(), new Font("Lucidia Console", 10), Brushes.Black, new Point(70, 202));
            g.DrawString(dr.ItemArray.ElementAt(4).ToString(), new Font("Lucidia Console", 10), Brushes.Black, new Point(70, 224));
            g.DrawString(dr.ItemArray.ElementAt(5).ToString(), new Font("Lucidia Console", 10), Brushes.Black, new Point(550, 285));
            g.DrawString("***********", new Font("Lucidia Console", 10), Brushes.Black, new Point(550, 300));
            g.DrawString("***********", new Font("Lucidia Console", 10), Brushes.Black, new Point(550, 315));
        }

        m_printedRows += NUM_ROWS_PER_PAGE;
        printDocument.PrinterSettings.DefaultPageSettings.Landscape = true;
        printDocument.DefaultPageSettings.Landscape = true;
    }

    private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        int rowPosition = SPACE_ABOVE_HEADER;

        rowPosition += ROW_HEIGHT;

        // draw each row
        DrawGridBody(e.Graphics, rowPosition);

        // see if there are more pages to print
        if (MoreRowToPrint())
            e.HasMorePages = true;
        else
            m_printedRows = 0;
    }

    private bool MoreRowToPrint()
    {
        return ((DataTable)dataGridView.DataSource).Rows.Count > m_printedRows;
    }

DefaultPageSettings.Landscape=true在DrawGridBody方法内调用,这是不必要的。删除它,然后再次尝试检查它是否导致方向问题。感谢您的响应,从DrawBody中删除pageorientation并放置printDocument.PrinterSettings.DefaultPageSettings.横向=true;printDocument.DefaultPageSettings.横向=true;在表单加载中,它与XPS和佳能LBP2900配合使用时,我需要在点阵打印机数据表dt.Columns.AddBranch的连续纸张上打印哪些更改;dt.Columns.AddName;dt.Columns.AddAcType dt.Columns.AddCurency dt.Columns.AddActNum dt.Columns.addchqno难以阅读注释,单词太多。编辑问题,在末尾附加更新。对不起,我是新来的。目前为止,XPS和canon laser i v正在使用点阵打印机检查问题,以便在连续纸张上打印点阵打印机在连续纸张上打印时出现了什么问题?还有定位问题吗?