【发布时间】:2018-10-29 03:51:20
【问题描述】:
我有一个int 列表,其中包含我不想要打印的页面。
我们称之为skipPages。
当我尝试将实际打印部分放入 if(skipPages.IndexOf(currentPage)<0) 语句中时,它会打印出空白页。
public void printPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
List<int> skipPages = new List<int> { 2, 5, 6 };
if(currentPage<totalPage) e.HasMorePages = true;
else e.HasMorePages = false;
if(skipPages.IndexOf(currentPage)<0)
{
e.Graphics.DrawString(
currentPage.ToString(),
new Font("Times New Roman",12),
new SolidBrush(Color.Black),
new Point(10,10));
}
currentPage++;
}
当我尝试将e.HasMorePages = true 放入其中时,它只会在第一个跳过页面之后停止所有内容。
public void printPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
List<int> skipPages = new List<int> { 2, 5, 6 };
if(currentPage<totalPage && skipPages.IndexOf(currentPage)<0) e.HasMorePages = true;
else e.HasMorePages = false;
e.Graphics.DrawString(
currentPage.ToString(),
new Font("Times New Roman",12),
new SolidBrush(Color.Black),
new Point(10,10));
currentPage++;
}
请教我如何正确设置它!?
非常感谢!!!
【问题讨论】:
-
嗨 PiggyChu515,欢迎来到 StackOverflow。您能否发布相关代码,因为我们没有太多工作要做。
-
我认为这个链接可能会有所帮助stackoverflow.com/questions/7761897/…
-
@Francis:我添加了代码,希望对您有所帮助!
-
@Alireza:该示例教我如何打印范围的页面,这不是我想要做的。我尝试跳过页,可能是第 2、5、6 页或第 4、7、12、14、15、19 页。不过还是谢谢!
-
每个页面都会触发 PrintPage 事件。如果你不画任何东西,那么你会得到一个空白页。因此,您必须增加 currentPage 变量才能到达您想要打印的页面。这使得 e.HasMorePages 设置正确有点棘手,最好的方法是预先进行测试,从 BeginPrint 事件开始。
标签: c# printdocument