通过打印机c++打印

Printing through printer c++

本文关键字:打印 c++ 打印机      更新时间:2023-10-16

我正在制作一个程序预订票证,我想打印票证。我愿意使用文本文件,但经过几天的搜索,我没有得到一个有用的代码,工作

在我的书中,下面的代码是

#include<fstream.h>
#include<process.h>
int main()
{
    char filename[13];
    cout<<"enter The Filename";
    cin.getline(filename,12);
    ifstream fin;
    fin.open(filename);
    if(!fin)
    {
        cerr<<"file cannot Be Opened";
        exit(-1);
    }    
    ofstream fout;
    fout.open("PRN");
    char ch;
    while(fin.get(ch)!=0)
        fout.put(ch);
    fout.close();
    fin.close(); 
    return 0;   
}

执行上述代码,但未观察到

注意:我使用的是borland 5.02,不愿意跳转到WinAPI或MFC

2004年,我遇到了从C++程序打印文档的许多问题。我已经尝试使用Windows MFC API,但这不太好用。因此,我找到了另一个解决方案,该解决方案将在2018年继续使用Visual Studio 2017!

 XString sCmd;
 XString sDevice = "\\localhost\DefaultPrinter";
 sCmd.Clear() << "net use LPT1: " << sDevice;
 iRetCode = system(sCmd);
 sCmd.Clear() << "print /D:LPT1 " << sFile;
 iRetCode = system(sCmd);
 sCmd = "net use LPT1: /delete";
 iRetCode = system(sCmd);

XString类是MFC CString的克隆,经过增强,代码可以在Windows和BS2000(德语中为Siemens Operating System=Betrieb System)上运行。

只有在必须运行C++EXE的每台电脑上定义一个名为"DefaultPrinter"的共享打印时,此代码才能工作。

在不使用XString的情况下,并且在简化某些行时,代码可以是:

std::string sDevice = "\\localhost\DefaultPrinter";
system(string("net use LPT1: ") + sDevice);
system(string("print /D:LPT1 ") + sFileToPrint;
system("net use LPT1: /delete");