如何在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()等) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
