Как я могу распечатать изображение на принтере Epson с помощью MFC? [закрыто]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу распечатать изображение на принтере Epson с помощью MFC? [закрыто]

Сообщение Anonymous »

Я хочу распечатать QR -изображение (растровое изображение) и текст, используя ESCPOS. Я использую Visual Studio 2005. Это единственная версия, которая доступна на работе. Логика ниже - это то, что я изменил до сих пор.
Результат квитанции Pirnt → Введите описание изображения здесь
Я хочу Recipt → Peticipt
qr iamage здесь → qrimage < /p>
Это Qrimage - растровый карта (128x128) < /p>
Я успешно реализовал изображение растрового изображения, используя изображение, используя растровое изображение, используя изображение GS V 0 в ESC/POS.
Однако я не могу распечатать изображение и текст растрового изображения и текст на той же строке, используя GS V 0.
Я обнаружил, что многие люди задавали тот же вопрос, что и я. →
link < /p>
Я создал его для определения приоритетов печати изображений растрового карты вместо текста. . < /p>
↓↓↓ Это мой источник ↓↓ вероятности дания < /em>
Я пересмотрел свое письмо на основе отзывов тех, кто мне помог. /p>
HBITMAP hBmp;
LONG x, y, x1, h;
CString temp = "";

CString csFileName = "C:\QRCODE.bmp";

hBmp = (HBITMAP)::LoadImage(NULL, fileName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_MONOCHROME);

if (hBmp == NULL) {
return FALSE
}

CBitmap* m_bmpImage = CBitmap::FromHandle(hBmp);
BITMAP m_bmpInfo;
m_bmpImage->GetBitmap(&m_bmpInfo);

if (m_bmpInfo.bmBitsPixel != 1) {
return ERR_PRT_WRITE;
}

int width = m_bmpInfo.bmWidth;
int height = m_bmpInfo.bmHeight;
int bytesPerLine = (width + 7) / 8;
int totalSize = m_bmpInfo.bmWidthBytes * height;

BYTE* m_buf = (BYTE*)malloc(totalSize);
if (m_buf == NULL) {
return FALSE;
}

memset(m_buf, 0x00, totalSize);

BYTE bmiBuffer[sizeof(BITMAPINFOHEADER) + 2 * sizeof(RGBQUAD)];
BITMAPINFO* pBMI = (BITMAPINFO*)bmiBuffer;
ZeroMemory(bmiBuffer, sizeof(bmiBuffer));

pBMI->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
pBMI->bmiHeader.biWidth = m_bmpInfo.bmWidth;
pBMI->bmiHeader.biHeight = m_bmpInfo.bmHeight;
pBMI->bmiHeader.biPlanes = 1;
pBMI->bmiHeader.biBitCount = 1;
pBMI->bmiHeader.biCompression = BI_RGB;

pBMI->bmiColors[0].rgbBlue = 0;
pBMI->bmiColors[0].rgbGreen = 0;
pBMI->bmiColors[0].rgbRed = 0;
pBMI->bmiColors[0].rgbReserved = 0;

pBMI->bmiColors[1].rgbBlue = 255;
pBMI->bmiColors[1].rgbGreen = 255;
pBMI->bmiColors[1].rgbRed = 255;
pBMI->bmiColors[1].rgbReserved = 0;

HDC hdc = ::GetDC(NULL);
if (!GetDIBits(hdc, hBmp, 0, m_bmpInfo.bmHeight, m_buf, pBMI, DIB_RGB_COLORS)) {
::ReleaseDC(NULL, hdc);
free(m_buf);
return ERR_PRT_WRITE;
}
::ReleaseDC(NULL, hdc);

for (int i = 0; i < 10; i++) {
printf("m_buf[%d]: 0x%02X\n", i, m_buf);
}

BYTE sendData[1024];
int pos = 0;

for (int row = 0; row < height; row += 8) {
pos = 0;

sendData[pos++] = 0x1B; // ESC
sendData[pos++] = '*'; // '*'
sendData[pos++] = 0; // mode:0
sendData[pos++] = (BYTE)(width & 0xFF); // nL
sendData[pos++] = (BYTE)((width >> 8) & 0xFF); // nH

for (int col = 0; col < width; col++) {
BYTE c = 0;
for (int i = 0; i < 8; i++) {
int currentRow = row + i;
if (currentRow < height) {
int byteIndex = currentRow * m_bmpInfo.bmWidthBytes + (col / 8);
int bitIndex = col % 8;
BYTE pixelByte = m_buf[byteIndex];

if (pixelByte & (0x80 >> bitIndex)) {
c |= (1
Итак, печати ... здесь ....
Введите описание изображения здесь
Я не понимаю свою квитанцию ​​...
Вопросы И ответы здесь довольно незрелые. Извините.


Подробнее здесь: https://stackoverflow.com/questions/794 ... -using-mfc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как я могу распечатать изображение на принтере Epson с помощью MFC? [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как я могу распечатать изображение на принтере Epson с помощью MFC? [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Как я могу распечатать изображение на принтере Epson с помощью MFC? [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как я могу распечатать изображение на принтере Epson с помощью MFC? [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как я могу распечатать изображение на принтере Epson с помощью MFC?
    Anonymous » » в форуме C++
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»