8

我正在尝试将内容从重定向端口 (Redmon) 拦截到 C# 应用程序,以便处理它。现在我只是想弄清楚如何将输出传递到我的应用程序中。我以为我可以通过标准输入输入它,但它不起作用。在命令行中,我可以将文本通过管道传输到我的应用程序中,并且它可以工作,但是如果我尝试通过 redmon 端口打印,我的应用程序似乎没有接受输入。我设置 Redmon 让我的应用程序处理输出。这是我的代码和打印机端口设置的屏幕截图。

namespace titoprint
{
    class Program
    {
        static void Main()
        {
            int result;
            while ((result = Console.Read()) != -1)
            {
                Console.WriteLine("{0} = {1} ", result, (char)result);
            }
            Console.WriteLine("in console");
            MessageBox.Show("ok done!");
            Console.ReadLine();
        }
    }
}

`端口设置

我也只是尝试将文本传递给应用程序。所以我使用的过程是winprint并设置为文本。

谢谢

4

1 回答 1

0

你可以这样读:

Stream content = Console.OpenStandardInput();

using (BinaryReader standardInputReader = new BinaryReader(content))
{
    using (FileStream standardInputFile = new FileStream(standardInputFilename, FileMode.Create, FileAccess.ReadWrite))
    {
        standardInputReader.BaseStream.CopyTo(standardInputFile);
    }
}

然后您可以转换为PDF:

String[] ghostScriptArguments = { "-dBATCH", "-dNOPAUSE", "-dSAFER",  "-sDEVICE=pdfwrite",String.Format("-sOutputFile={0}", outputFilename), standardInputFilename };
于 2019-01-01T13:49:55.090 回答