如何在C中打印原始文本时捕获错误
发布时间:2020-12-16 07:29:13 所属栏目:百科 来源:网络整理
导读:我知道如何简单地将文本文件打印到打印机: (请参阅下面的代码块我的问题) #include stdio.h#include stdlib.hint main ( void ){ FILE * Printer = fopen("LPT1","w"); FILE * FilePointer; char str[256]; char buf[BUFSIZ]; FilePointer = fopen("sample.
我知道如何简单地将文本文件打印到打印机:
(请参阅下面的代码块我的问题) #include <stdio.h> #include <stdlib.h> int main ( void ) { FILE * Printer = fopen("LPT1","w"); FILE * FilePointer; char str[256]; char buf[BUFSIZ]; FilePointer = fopen("sample.txt","r"); if( !FilePointer ) { printf("File does not existn"); return -1; } while( fgets ( buf,sizeof buf,FilePointer ) != NULL ) { fprintf(Printer,"%s",buf); } printf("nPrinting..n"); fprintf(Printer,"f"); getch(); return 0; } 但我的问题是使用此技术将文本打印到打印机时出错. 有什么我可以做的吗?谢谢! 解决方法
您可以检查打印机是否在线,但前提是您是否可以访问内核模式,是打印驱动程序还是Windows 95/98.
通常,打印机端口地址设置为0x378(并行端口的数据寄存器).向此添加一个(0x379)将为我们提供并行端口的状态寄存器的地址.状态寄存器(SELECT)的第4位告诉我们打印机是在线还是离线.如果设置了该位,则打印机处于联机状态 int status; // get status register value at 0x379 status = _inp (0x379); if (status & 0x10) // check bit 4 { // printer online } else { // printer offline } 这是该注册的另一个成员: bit 1 : DCN bit 3 : FAULT bit 4 : SELECT bit 5 : PAPER END bit 6 : ACKNOWLEDGE bit 7 : BUSY 它来自codeguru.但请注意,你应该更好地使用更高的界面,如WIN3??2中的打印机api(OpenPrinter(),WritePrinter()StarDocPrinter(),StartPagePrinter()等) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |