Печать на C ++: замятие принтера, что я делаю не так? - PullRequest
0 голосов
/ 08 июня 2010

У меня проблема с печатью на C ++.Насколько я знаю, этот код работал на моем предыдущем принтере, но с тех пор, как я получил другой (HP C7280), он начал создавать проблемы.Всякий раз, когда я пытаюсь распечатать что-либо, даже пустую страницу, страница ЗАГРУЗИТ принтер.Я должен вручную удалить страницу с принтера.Я понятия не имею, почему это происходит.Я делаю что-то не так, это проблема с драйверами, есть ли лучшие способы печати на C ++?Я использую 64-разрядную версию Windows 7, но эта проблема также возникла, когда я использовал 64-разрядную версию Windows Vista.Я использую следующий код:

PRINTDLG pd;
ZeroMemory(&pd, sizeof(pd));
pd.lStructSize = sizeof(pd);
pd.hwndOwner   = mainWindow;
pd.hDevMode    = NULL;
pd.hDevNames   = NULL;     
pd.Flags       = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC;
pd.nCopies     = 1;
pd.nMinPage    = 1;
pd.nMaxPage    = 0xFFFF;

if (PrintDlg(&pd)==TRUE) 
{
    DOCINFO di;

    di.cbSize       = sizeof(DOCINFO);
    di.lpszDocName  = "Rumitec en Roblaco Print";
    di.lpszOutput   = (LPTSTR)NULL;
    di.fwType       = 0;

     // Start printing
    StartDoc(pd.hDC, &di);
    StartPage(pd.hDC);
    initPrinter(pd.hDC);

    // ...
    // Do some drawing
    // ...

    // End printing
    EndPage(pd.hDC);
    EndDoc(pd.hDC);
    DeleteDC(pd.hDC);
}

Я что-то не так делаю?Кроме того, есть ли лучший, более простой и современный способ сделать это?

РЕДАКТИРОВАТЬ: я могу печатать из любого другого приложения без замятия бумаги.Блокнот, Word и т. Д., Любое другое приложение может печатать просто отлично.

1 Ответ

0 голосов
/ 18 марта 2014

Я думаю, что вы МОЖЕТЕ вызвать замятие принтера с программным обеспечением. Просто печатайте прямо до краев - что делают не многие приложения - и вы можете легко обнаружить проблему с оборудованием / драйвером принтера, когда печать у края приводит к застреванию головки в бумаге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...