Работа с принтером из Visual C++

  • Автор темы Alex_Bamuner
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Alex_Bamuner

#1
Всем привет.
Задача такая: проект работает с mdb базами. В определенный момент (по кнопке) нужно распечатать таблицу из этой базы на принтере. Вывести текст на печать я научился. Что-то в таком духе:

Код:
CPrintDialog dlg(FALSE);
dlg.GetDefaults();
HDC hdcPrinter = dlg.GetPrinterDC();
if (hdcPrinter == NULL)
{
MessageBox(_T("Нет принтера!"));
}
else
{

CDC dcPrinter;
dcPrinter.Attach(hdcPrinter);
DOCINFO docinfo;
memset(&docinfo, 0, sizeof(docinfo));
docinfo.cbSize = sizeof(docinfo);
docinfo.lpszDocName = _T("CDC::StartDoc() Code Fragment");
if (dcPrinter.StartDoc(&docinfo) < 0)
{
MessageBox(_T("Printer wouldn't initalize"));
} else {

if (dcPrinter.StartPage() < 0)
{
MessageBox(_T("Could not start page"));
dcPrinter.AbortDoc();
} else {

CGdiObject* pOldFont = dcPrinter.SelectStockObject(SYSTEM_FONT);

dcPrinter.TextOut(50, 50, _T("HELLO"), 5);
dcPrinter.EndPage();
dcPrinter.EndDoc();
dcPrinter.SelectObject(pOldFont);
}
}
}
Правда мелко-мелко печатает, но это неважно. Важно - как отправить файл на печать, а точнее - таблицу из Access файла? Спасибо за помощь и советы.
Александр.
 
A

as_xp

#2
А можешь полность выложить код. А то я не могу зарегистрировать этот класс :D
 
A

Alex_Bamuner

#3
Хм... Откровенно говоря, проблема была уже дааавно решена, я уже успел уволиться и перейти на другую работу... ))) А проблему, если интересно, рушил просто - делаю CreateProcess и закидываю в него Аксес с моей базой в параметрах. А в базе написан макрос, который при открытии распечатывает таблицы как надо и сам себя закрывает. Всё оказалось намного проще, чем могло бы быть, хотя времени это занимает, конечно же, довольно много...
 
Статус
Закрыто для дальнейших ответов.