【问题标题】:Printing string text in C does not print在 C 中打印字符串文本不打印
【发布时间】:2013-09-03 19:35:48
【问题描述】:

我正在尝试将特定字符串打印到行式打印机。 我尝试运行这个 sn-p 但没有打印出来。我还在查看打印机的待处理作业列表,运行代码时没有任何显示。

我可以从 Word 中很好地打印文档,因此可以使用打印机。

有人可以提示可能是什么问题吗?

#include <stdio.h>
#include <stdlib.h>
int main()
{
 FILE* printer = 0;
 if(( printer = fopen("lpt1", "a+")) == NULL)
 {
    puts("error opening printer");
 }
 char* text = "This is a test printing";

 if ( (fprintf(printer, "%s" , text) ) < 0  ){
     perror("Printing error");
 } 

 fflush(printer);
 fclose(printer);
 return 0;
}

【问题讨论】:

  • lpt1 某种特殊文件?
  • 不,是并口。它与 COM1 COM2 等一起显示在设备管理器上。
  • 我认为大多数人输出到一个文件,然后从 Windows 打印它。但要一步完成,您需要打开一个输出程序而不是文件。这在这里解释:stackoverflow.com/questions/450865/…
  • 假设您的文本实际到达打印机,页面打印机(这是大多数现代打印机)在页面完成之前不会打印任何内容。尝试在字符串末尾添加换页符('\f''\x0c')。
  • 这可能会有所帮助:support.microsoft.com/kb/138594/en-us

标签: c windows windows-7 printing printf


【解决方案1】:

我认为您误解了该代码。您提交的代码将字符串“This is a test printing”写入同一目录中名为“lpt1”的文件中。

你可能想要写出类似“/dev/lpt1”的东西,你应该可以通过运行来测试它

echo "this is my printed text" >/dev/lpt1

【讨论】:

  • 这是在 Windows 中。所以没有/dev。对不起,应该提到它。
【解决方案2】:

不,您不能在 Windows 上使用 fopen() 写入打印机端口。您可以获得的最接近的是生成cmd.exe 并使用print command 打印您想要的内容。您可以先将您想要的内容写入临时文件,然后让print 为您打印。

【讨论】:

    猜你喜欢
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 2021-10-23
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多