2013-05-20 236 views
0

我在C#中开发了一个应用程序,并且我只想在打印机中打印标签,而不是打印整个表单。 我的四个标签是lblName, lblAge, lblAdd, lblEmail。我只想要打印这些标签,而不是表单。有人可以帮我请。谢谢!仅在打印机中打印标签,而不在C#中打印标签

无论如何,这是我的代码打印时,我点击按钮。

private void btnPrint_Click(object sender, EventArgs e) 
{   
    PaperSize pp = new PaperSize("MyReport", 718, 359); 
    printForm1.PrinterSettings.DefaultPageSettings.PaperSize = pp; 
    printForm1.PrinterSettings.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0); 
    //printForm1.PrintAction = System.Drawing.Printing.PrintAction.PrintToPreview; 
    printForm1.Print(this, PrintForm.PrintOption.CompatibleModeClientAreaOnly); 

} 
+0

我只是把代码放在我的按钮上进行打印,但我有其他代码,比如从数据库中调用数据。它就像我将从数据库中获取数据,然后打印到身份证。 – ViFer

+0

我收到了答复!它打印.. 现在我唯一的问题是它为什么模糊?或像素化呢? ( 它不像MS Word文档中打印干净。我知道关于水晶报告,但我不能使用它的原因是某种原因。请帮助我的人.. :( – ViFer

回答

1

你可能会发现你在找什么在这里,你把内容插入到面板的控制和打印:Print Panel in Windows Form C#

这是我的快速和肮脏的方法。如果您将所有内容都放在白色表格上,并且只想显示标签,打印和封闭表单,这将会起作用。以上可能会更好,但!

private void btnPrint_Click(object sender, EventArgs e) 
{   
    PaperSize pp = new PaperSize("MyReport", 718, 359); 
    printForm1.PrinterSettings.DefaultPageSettings.PaperSize = pp; 
    printForm1.PrinterSettings.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0); 

    // Show the labels... 
    lblAge.Visible = true; 
    lblAdd.Visible = true; 
    lblName.Visible = true; 
    lblEmail.Visible = true; 

    // ...Print them visible... 
    printForm1.Print(this, PrintForm.PrintOption.CompatibleModeClientAreaOnly); 

    // ...Then hide again 
    lblAge.Visible = false; 
    lblAdd.Visible = false; 
    lblName.Visible = false; 
    lblEmail.Visible = false; 

} 
+0

这是最好的,但除此之外,你应该使用一些报告模块,打印具体信息 –

+0

没有标签实际上是可见的,但事情是它像我希望表格是透明的,我将打印到身份证,这就是为什么:) – ViFer

+0

扩展答案包括你试图实现的类似事情的链接 – Belogix