C++ Builder: преобразование и распечатка растрового изображения
Я создаю приложение на Android с помощью C++ Builder, и мне нужно распечатать (не отображать на экране) уже созданное растровое изображение. Для распечатки я использую "Классическое базовое приложение Bluetooth", которое предлагает Embarcadero. Для преобразования я использую этот код:
#include "System.NetEncoding.hpp"
TMemoryStream *ms;
TStringStream *ss;
String s;
UnicodeString result;
ms = new TMemoryStream();
ss = new TStringStream();
bmpResult->SaveToStream(ms);
ms->Position = 0;
EncodeStream(ms, ss);
s = ss->DataString;
ms->Free();
ss->Free();
result = s;
return result;
Он возвращает мне строку base64, поэтому я могу передать ее в функции печати, но он распечатает всю строку, и мне нужно растровое изображение (само изображение).
Как мне это сделать?
ИЗМЕНИТЬ:
Код, который я использую для взаимодействия с принтером:
TBytes ToSend;
if((FSocket == NULL) || (ItemIndex != ComboBoxPaired->ItemIndex)) {
if(ComboBoxPaired->ItemIndex > -1) {
TBluetoothDevice * LDevice = FPairedDevices->Items[ComboBoxPaired->ItemIndex];
FSocket = LDevice->CreateClientSocket(StringToGUID(ServiceGUI), false);
if(FSocket != NULL) {
ItemIndex = ComboBoxPaired->ItemIndex;
FSocket->Connect();
//func is AnsiString and passed as a parameter in this function
ToSend = TEncoding::UTF8->GetBytes(func);
FSocket->SendData(ToSend);
delete FSocket;
FSocket = NULL;
}
else {
ShowMessage("Error 1");
}
}
else {
ShowMessage("Error 2");
}
}
else {
ShowMessage("Error 4");
}
Я пытался использовать
TEncoding
закодировать растровое изображение и перейти к
ToSend
, но я не смог найти и не имеет смысла, потому что он напечатает строку (тот же случай, что и base64).