У меня проблема, если я передаю жестко закодированную строку \x1B|200uF
в качестве параметра, она принимает ее правильно.Escape Sequence in String
Но, когда я получить то же значение из элемента XML в новую переменную строки, я получаю следующее значение: \\x1B|200uF
Как вы можете видеть, что есть дополнительная последовательность выхода.
Таким образом, в целом проблема:
using (XmlReader xmlReader = XmlReader.Create(@"PosPrinter.xml"))
{
while (xmlReader.Read())
{
if (xmlReader.NodeType == XmlNodeType.Element)
{
switch (xmlReader.Name)
{
case "PosPrinter":
_printer.LogicalName = xmlReader.GetAttribute("LogicalName");
break;
case "FeedReceiptCommand":
_printer.FeedReceiptCommand = xmlReader.GetAttribute("value");
break;
я получить значение в моей строке «FeedReceiptCommand» значение, как я уже упоминал выше, хранится в XML, как \x1B|200uF
но извлекается в строку, как \\x1B|200uF
с дополнительная escape-последовательность в начале.
Я затем вызвать мою команду, используя переменную FeedReceiptCommand строку:
_posPrinter.PrintNormal(PrinterStation.Receipt, PrinterSettings.FeedReceiptCommand);
Но команда не выполняется из-за дополнительной последовательности.
Но если я называю ту же команду со значением жёстко:
_posPrinter.PrintNormal(PrinterStation.Receipt, "\x1B|200uF");
... то команда получает успешно выполнена ..
Значение \x1B|200uF
является командой ESC для отправьте на принтер Epson TM-T88V с использованием Microsoft.PointOfService, где «\ x» для Hex, я думаю, и 1B - значение Hex.
I hav e попытался избавиться от дополнительной escape-последовательности, используя «Trim», «Substring» и даже сделав цикл foreach, чтобы закодировать каждый символ в строке, чтобы построить новую. Я также попробовал stringbuilder.
Но я здесь отсутствует где-то здесь.
Таким образом, любая помощь будет оценен в том, как я могу передать переменный вместо \x1B|200uF
Что вы получите, если вы печатаете значение вне дома? Я уверен, что '\\' - это всего лишь дисплей. – ChrisF