通过打印机c ++打印

时间:2014-08-31 16:30:41

标签: c++

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

在我的书中给出以下代码

#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

1 个答案:

答案 0 :(得分:0)

2004年,我遇到了从C ++程序打印文档的问题。我尝试使用Windows MFC API,但这不能正常工作。因此,我找到了另一个解决方案,该解决方案在使用Visual Studio 2017的情况下将在2018年继续使用!

 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(西门子操作系统=德语的Betrieb系统)上工作。

仅当在必须运行C ++ EXE的每台PC上定义一个名为“ DefaultPrinter”的共享打印文件时,此代码才起作用。

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

std::string sDevice = "\\\\localhost\\DefaultPrinter";

system(string("net use LPT1: ") + sDevice);
system(string("print /D:LPT1 ") + sFileToPrint;
system("net use LPT1: /delete");