TX TextControl 打印 无法设置打印页码如:打印3-5页
虽然存在第五页,但是打印设置里面还是认为不多于1页,所以只有选择全部,无法设置打印页码。
private void withCustomizedDialogToolStripMenuItem1_Click(object sender, EventArgs e)
{
PrintDialog myPrintDialog = new PrintDialog();
PrintDocument myPrintDocument = new PrintDocument();
myPrintDialog.Document = myPrintDocument;
myPrintDialog.AllowSomePages = false;
myPrintDialog.AllowPrintToFile = false;
myPrintDialog.PrinterSettings.FromPage = 3;
myPrintDialog.PrinterSettings.ToPage = 5;
if (myPrintDialog.ShowDialog() == DialogResult.OK)
{
textControl1.Print(myPrintDocument);
}
}
但是如果直接调用控件的打印方法,就可以选择页码
private void withBuiltInDialogToolStripMenuItem_Click(object sender, EventArgs e)
{
textControl1.Print("My Print Job");
}
猜测是第一种方法重新实例化的myPrintDocument对象是没有内容的,所以打印程序认为不需要选择页码,直接全部打印,所以程序中设置的
myPrintDialog.PrinterSettings.FromPage = 3;
myPrintDialog.PrinterSettings.ToPage = 5;
也是没有效果的。
改怎么解决这个问题? 这是第一张图片 回复 2楼hr5204562的帖子
有关打印可以参考我们的博客:
http://blog.gcpowertools.com.cn/post/2012/11/16/TX-Text-Control-NET-产品使用指南(3)打印操作.aspx
根据你的需求和代码,需要将PrintDialog的AllowSomePages属性设置为true,PageOption的Radiobutton才会变成可用状态。 回复 3楼Alice的帖子
有没有不弹框直接打印3-5页,或者弹框默认选中页码打印 回复 4楼hr5204562的帖子
3楼的链接:http://blog.gcpowertools.com.cn/post/2012/11/16/TX-Text-Control-NET-产品使用指南(3)打印操作.aspx
博客里有详细的操作,第三节介绍的就是直接打印。代码参考:
private void mnuFile_Print_WithoutDialog_Click(object sender, System.EventArgs e)
{
PrintDocument myPrintDocument = new PrintDocument();
myPrintDocument.PrinterSettings.FromPage = 1;
myPrintDocument.PrinterSettings.ToPage = 3;
txTextControl1.Print(myPrintDocument);
} 回复 5楼Alice的帖子
就是你们的这个例子,但是这样设置无用 回复 6楼hr5204562的帖子
请问,是如何设置无用?是说这个值设置完了打印出来不是1到3页么?还是其他的意思? 回复 7楼Alice的帖子
private void withoutDialogToolStripMenuItem_Click(object sender, EventArgs e)
{
PrintDocument myPrintDocument = new PrintDocument();
myPrintDocument.PrinterSettings.FromPage = 2;
myPrintDocument.PrinterSettings.ToPage = 3;
textControl1.Print(myPrintDocument);
}
这样的代码,依然会打印1,2,3三页,而不是2,3这两页。也就是说还是打印的全部 回复 8楼hr5204562的帖子
如果打印特定的页,除了FromPage和ToPage,还需要设置PrintRange属性。
请添加代码:
myPrintDoc.PrinterSettings.PrintRange = PrintRange.SomePages;
页:
[1]