Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 11.09.2019
Сообщений: 4
1

Печать выбранного файла на выбранном принтере С++ win.api

28.12.2019, 15:56. Показов 1186. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток. Передо мной стоит задача отправить файл на печать на выбранный мною сетевой принтер. Однако функция StartDocPrinter не открывает мой принтер по имени и печать не выполняется. Я программно выводил список доступных принтеров, и среди них отобразился нужный мне, он называется "\\192.168.60.222\HP LaserJet Professional M1132 MFP". Подскажите, по каким причинам он может не открываться. При преобразовании const char в LWPSTR значение
00209E98.



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <windows.h>
#include <iostream>
 
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "russian");
    BOOL     bStatus = FALSE;
    HANDLE     hPrinter = NULL;
    DOC_INFO_1 DocInfo;
    DWORD      dwJob = 0L;
    DWORD      dwBytesWritten = 0L;
    const char* name = "\\192.168.60.222\HP LaserJet Professional M1132 MFP";
    LPTWSTR szPrinterName = LPTWSTR(name);
    bStatus = OpenPrinter(szPrinterName, &hPrinter, NULL);
    if (bStatus) {
        DocInfo.pDocName = (LPTSTR)("C:\\Users\\rosamev\\doc.txt");
        DocInfo.pOutputFile = NULL;
        DocInfo.pDatatype = (LPTSTR)("RAW");
 
        dwJob = StartDocPrinter(hPrinter, 1, (LPBYTE)&DocInfo);
        if (dwJob > 0) {
        
            bStatus = StartPagePrinter(hPrinter);
            if (bStatus) {
                bStatus = WritePrinter(hPrinter, 0, 0, &dwBytesWritten);
                EndPagePrinter(hPrinter);
            }
            
            EndDocPrinter(hPrinter);
        }
        // Close the printer handle. 
        ClosePrinter(hPrinter);
    }
    else
    {
        cout << "Печать не удалась";
        cout << name;
    }
    
    system("pause");
    return 0;
}
Добавлено через 2 минуты
OpenPrinter* , а не StartDocPrinter
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2019, 15:56
Ответы с готовыми решениями:

MACOS 10.9.5 b печать на сетевом WIN принтере
приветствую всех гуру. подскажите как заставить это гребаное яблоко за кучу денег, печатать на...

Печать файла на принтере
Обясните пожалуста как в с++ отправить файл принтеру на печать, или киньте ссылку где можно...

Простая печать одностраничного текстового файла на принтере
Нужно напечатать в одном случае при открытии формы, а в другом при нажатии кнопки одностраничный...

Приложение,позволяющее организовать печать графического файла на принтере
пишет начинающий) выручайте,передо мной вот такая вот проблема: Реализуйте программное приложение,...

1
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
29.12.2019, 11:00 2
Цитата Сообщение от Imfortness Посмотреть сообщение
Однако функция StartDocPrinter не открывает мой принтер по имени и печать не выполняется. Я программно выводил список доступных принтеров, и среди них отобразился нужный мне, он называется "\\192.168.60.222\HP LaserJet Professional M1132 MFP".
Цитата Сообщение от Imfortness Посмотреть сообщение
const char* name = "\\192.168.60.222\HP LaserJet Professional M1132 MFP";
    LPTWSTR szPrinterName = LPTWSTR(name);
C++
1
2
        wchar_t name[] = L"\\\\192.168.60.222\\HP LaserJet Professional M1132 MFP";
        bStatus = ::OpenPrinter(name, &hPrinter, NULL);
Обрати внимание на обратные слэши, они должны быть двойными
0
29.12.2019, 11:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2019, 11:00
Помогаю со студенческими работами здесь

Диалог выбора файла в си с использованием win api
Помогите сделать диалоговое окно для выбора файла при нажатии на кнопку в си с использованием...

Как отключить автосоздание файла *.res. Win API
Само-собой строку {$R *.RES} я уже удалил. Добавлено через 2 часа 47 минут создал 3 темы за...

Проблема с установкой файла api-ms-win-crt-runtime-l1-1-0
Приветствую, форумчане! Помогите с проблемой. Установил xampp и при запуске apache выдает такую...

Печать на принтере
Добрый день. Изучаю печать на принтере (минуя диалоговые окна, без HTML). Печатаю текстовый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru