【问题标题】:Print the file when CTRL + P has been clicked [closed]单击CTRL + P时打印文件[关闭]
【发布时间】:2013-09-22 09:35:56
【问题描述】:

我想使用 C# 在我的 Windows 应用程序/Windows 窗体中打印一个文件。有人知道吗?我一直在互联网上搜索,但它附带打印一个已经保存到计算机的文件。我想要的是,在程序运行时以及用户单击 CTRL + P 时直接打印。

我运行程序时有这样的文件:

我希望当我在 A4 纸上单击 CTRL + P(不先保存文件)时打印它,它在 A4 纸上像这样出来:

我想要这样的网站:http://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument%28printer%29.aspx

【问题讨论】:

  • 打印是非常复杂的操作。你会精确你想要打印的内容。 .NET 中有专门的打印对话框类。你用谷歌搜索过吗?如果它出现在 Windows 窗体中的快捷键上,请查看:stackoverflow.com/questions/400113/…
  • 您要打印硬盘上不存在的文件?您如何在应用程序中表示文件?
  • 也许这个问题及其答案给了一些想法stackoverflow.com/questions/12510811/printing-quality-winform/…
  • @Omribitan:我的意思是,就像 microsoft word 一样,当我在纸上输入 asd 之类的内容时,当我点击 CTRL + P 时,它不会要求我先保存,它只是直接显示打印对话框。我想要那样的。这就是我直接打印文件而不先保存的意思
  • 编写代码在打印机上绘图。或者获取第三方打印库。

标签: c# winforms


【解决方案1】:

假设您已经链接了它的文章,我假设您已经了解 PrintDocument 类。并且您实现了它的 PrintPage 事件,如 MSDN 文章中所示。将工具箱中的 PrintDialog 拖放到表单上。将其 Document 属性设置为您的 PrintDocument。

然后,您只需在用户按下 Ctrl+P 时激活对话框。像这样:

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
        if (keyData == (Keys.Control | Keys.P)) {
            printDialog1.ShowDialog(this);
            return true;
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }

【讨论】:

  • 对不起,先生,我对印刷品一无所知。我在上面的问题(MSDN 文章)中提到的链接只是想告诉你们打印的样子(当我在程序中单击 CTRL + P 时),甚至没有完全理解打印类。不过,谢谢你的建议,我会考虑的
【解决方案2】:

从您自己的应用程序打印需要格式化输出到 .Net 打印类,请参阅PrintDocument

另外,看看报告工具,它可用于格式化文档以进行打印和导出,即输出到打印机、Excel 或 PDF,在这些应用程序中可以进行查看和打印。

【讨论】:

    猜你喜欢
    • 2016-06-12
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 2019-01-16
    相关资源
    最近更新 更多