Я пытаюсь распечатать документ на сетевом лазерном принтере с устройства Windows CE.
Так как я пытаюсь напечатать образец текста, проблем нет, и я могу сделать это с помощью сокетов, моя проблема заключается в том, что мне нужно напечатать текст и небольшое изображение под текстом, например:
not formatted text
------------------
| IMAGE |
------------------
other not formatted text
Моей первой идеей было создать документ Rtf и отправить его на принтерные носки принтера, но он, очевидно, печатает текстовое содержимое документа, а не отформатированный текст ... Я пытаюсь использовать множество других способов кодирования данных для отправки, но без результатов ... есть способ сделать это, или я только трачу свое время? Если нет, есть ли способ архивации, который отправляет данные PCL / PostScript? (Обычно драйверы являются «стандартными» для основных команд на новых лазерных принтерах).
Это функция, которую я использую для печати на сетевом принтере:
public static string print_data_to_IP(string printerIP, int printerPort, byte[] myEncoded_bytes)
{
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//Not supported
//socket.NoDelay = true;
IPAddress ip = IPAddress.Parse(printerIP);
IPEndPoint ipEndPoint = new IPEndPoint(ip, printerPort);
socket.Connect(ipEndPoint);
socket.Send(myEncoded_bytes);
socket.Close();
return null;
}
и myEncoded_bytes составляют:
MemoryStream ms = new MemoryStream();
using (FileStream stream = File.Open("\\test.rtf", FileMode.Open))
{
byte[] stream_to_byte_array = new byte[stream.Length];
stream.Read(stream_to_byte_array, 0, (int)stream.Length);
ms = new MemoryStream(stream_to_byte_array);
stream.Close();
}
byte[] data = ms.ToArray();
спасибо за помощь,
Легион
P.S .: Внешняя библиотека не разрешена, поэтому я не могу использовать printCE или аналогичные «подсказки».