【问题标题】:How to print a text file content in .Net using c#如何使用 C# 在 .Net 中打印文本文件内容
【发布时间】:2022-01-20 15:10:47
【问题描述】:

我有一个包含几行的文本文件。我只想将此文件发送到我选择的打印机。为什么这么难? MSDN 和谷歌搜索点我使用:https://docs.microsoft.com/en-us/dotnet/api/system.drawing.printing.printdocument.print?view=dotnet-plat-ext-6.0

但是当我在我的 VS Code 中使用上述代码时,它会在构建时给我错误,因为“PagePageEventArgs”仅在 System.Drawing.Common 中可用。但是,即使通过 NuGet 包管理器,我也无法在我的 VS Code 中安装它。

首先,上面 lnik 中的代码看起来像是为 windows 窗体设计的,并且包含太多细节。所有这些代码都有很多其他错误。我是编程新手,这些对我来说是压倒性的,我坚持了一周。谁能告诉我如何使用我选择的打印机打印一个文本文件(文本文件中的所有行)。

【问题讨论】:

  • 您实际上是在尝试从 ASP.NET Web 应用程序打印吗?
  • @Martheen,我创建了控制台应用程序来执行此打印。此应用程序的唯一目的是在文件出现在目录中时立即执行此打印。我正在使用 Filewatcher 来检测文件何时出现在文件夹中,并且我设法获取出现的新文本文件的路径。我只是不知道如何打印这个新的文本文件
  • 那么不要标记asp.net。可以使用内置应用程序处理打印stackoverflow.com/a/19840331/529282
  • @Martheen 为错误的标签道歉。我不确定哪个是哪个。但是在您发给我的链接中,它没有说我们是否可以选择打印机?如果我不在 asp.net 中工作,那么我在使用什么?我下载了 .Net,我的 vs 代码文件读取为 program.cs
  • 如果你想要一个对话框,使用 winform stackoverflow.com/questions/3197830/… 或者,在调用stackoverflow.com/questions/971604/…之前调用默认打印机

标签: c#


【解决方案1】:

如果它们是文本文件,您可以作弊并使用记事本:

        var fileToPrint = "C:\\Junk\\Junk.txt";
        var p = new System.Diagnostics.Process();
        p.StartInfo.FileName = "notepad";
        p.StartInfo.Arguments = $"/p {fileToPrint}";
        p.StartInfo.UseShellExecute = false;
        p.Start();
        p.Dispose();
        Console.WriteLine("FINISHED");

基于来自:https://kimsereyblog.blogspot.com/2018/01/start-processes-from-c-in-dotnet-core.html的代码

和记事本命令行选项来自:https://answers.microsoft.com/en-us/windows/forum/all/notepadexe-command-line-options/810760c1-a45a-4013-9544-1c1208e1b389?auth=1

【讨论】:

    猜你喜欢
    • 2021-08-02
    • 1970-01-01
    • 2011-06-13
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    相关资源
    最近更新 更多