0

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

我可以从 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;
}
4

2 回答 2

1

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

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

echo "this is my printed text" >/dev/lpt1
于 2013-09-03T19:46:54.260 回答
0

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

于 2013-09-03T20:17:42.030 回答