我正在尝试从datagridview打印选定的文件。该文件位置保存在数据库中。现在,在打印之前,我想将“从页面到页面的份数”传递给PrintDialog。我能够将这些值传递给PrintDialog,但它不起作用,并且所有页面都正在打印,而且也只能打印一次。我什至在网上搜索了很多东西,但都无法解决。
请通过选择所有页面选项或将值传递给FromPage和ToPage来帮助我打印'n'份数。我的代码是:
//string ASSIGNMENT_PATH = dataGridView1.Rows[k].Cells[2].Value.ToString();
string ASSIGNMENT_PATH = "@C:\test.docx";
if (!File.Exists(ASSIGNMENT_PATH))
{
MessageBox.Show("No exceptional file created by application till now .");
}
else
{
short noC = Convert.ToInt16(txtNumOfCopies.Text);
short fP = Convert.ToInt16(txtFromPage.Text);
short tP = Convert.ToInt16(txtToPage.Text);
PrintDialog dialog = new PrintDialog();
dialog.AllowSomePages = true;
dialog.PrinterSettings.FromPage = fP;
dialog.PrinterSettings.ToPage = tP;
dialog.PrinterSettings.Copies = noC;
DialogResult dialogResult = dialog.ShowDialog(this);
if (dialogResult == DialogResult.Cancel)
{
this.Close();
}
if (dialogResult == DialogResult.OK)
{
ProcessStartInfo info = new ProcessStartInfo(ASSIGNMENT_PATH);
info.Verb = "PrintTo";
info.Arguments = "\"" + printDialog1.PrinterSettings.PrinterName + "\"";
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(info);
}
}
最佳答案
在此代码中,您使用两种打印方法。
第一种方法,使用PrintDialog,由于您必须设置Document属性,因此无法使用。
第二种方法,使用Process类和所有页面进行打印,因为在参数时将整个文件发送给打印机。
它是打印DataGridView http://www.codeproject.com/Articles/28046/Printing-of-DataGridView的示例,或者您也可以尝试以下How to print values from a DataGridView control
关于c# - PrintDialog.PrinterSettings不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19313868/