Проблема с печатью на термопринтере с помощью pstream.h - PullRequest
0 голосов
/ 31 октября 2019

У меня проблема с печатью на термопринтере. Я делаю приложение, которое печатает текстовый документ на принтере с заголовочным файлом pstream () . Когда я печатаю на обычном принтере, все в порядке, но когда на термопринтере он выдает ошибку очереди печати и не печатает. Я установил имя принтера как статическое, а не по умолчанию defaultPrinter = "Thermal Printer TP2";, но оно не печатает.

int main()
{
vector<string> printerNames = pst::pstream::getPrinterNames();
    vector<string>::iterator itr;
    for (itr = printerNames.begin(); itr != printerNames.end(); ++itr)
    {
        //cout << *itr << '\n';

    //Create a stream - default constructor will use the default ptinter
    pst::pstream p;

    //Set the page margins using the printer stream manipulators
    p << pst::setLeftMargin(5);
    p << pst::setTopMargin(1);
    p << pst::setRightMargin(5);
    p << pst::setBottomMargin(1); 

    ifstream f("document.txt"); //use some available  text file
    p.setLeftMargin(25);
    p << "\n";
    p << f;
    p << pst::flushp;
    f.close();...

pstream.h

...
pstream::pstream() :leftMargin(),rightMargin(),topMargin(),bottomMargin(),tabSize(4),pageNumbers(false)
    {
        DWORD buffSize;
        _TCHAR* pPrinterName;
        GetDefaultPrinter(0, &buffSize);
        pPrinterName = new _TCHAR[buffSize]();
        GetDefaultPrinter (pPrinterName,&buffSize);
        defaultPrinter = pPrinterName;
        //Set the stream status
        streamStatus = (defaultPrinter == "")? FAIL : GOOD;
    }....
...