VB.net PrintDocument auto cut после печати [дубликат]

Это не ошибка дизайна . Любой, кто совершает это, делает что-то неправильно.

Есть три случая, когда я вижу, где вы можете столкнуться с этой проблемой:

  1. Вы намерены изменить аргумент как сторону эффект функции. В этом случае никогда не имеет смысла иметь аргумент по умолчанию. Единственное исключение - когда вы злоупотребляете списком аргументов, чтобы иметь функциональные атрибуты, например. cache={}, и вы не должны были бы вызывать функцию с фактическим аргументом вообще.
  2. Вы намерены оставить аргумент немодифицированным, но вы случайно сделали изменить его , Это ошибка, исправьте ее.
  3. Вы намерены изменить аргумент для использования внутри функции, но не ожидали, что изменение будет доступно для просмотра вне функции. В этом случае вам нужно сделать копию аргумента, независимо от того, был ли он по умолчанию или нет!

Пример в вопросе может относиться к категории 1 или 3. Нечетно, что он изменяет переданный список и возвращает его; вы должны выбрать тот или другой.

10
задан abatishchev 14 September 2011 в 04:48
поделиться

2 ответа

1
ответ дан Markus 21 August 2018 в 01:22
поделиться

Большое спасибо, Ханс. Теперь я могу отправить команду Paper cut, используя класс Microsoft RawPrinterHelper. Я искал это решение в течение шести дней. Вот что я сделал.

string GS = Convert.ToString((char)29);
string ESC = Convert.ToString((char)27);

string COMMAND = "";
COMMAND = ESC + "@";
COMMAND += GS + "V" + (char)1;

PrintDialog pd = new PrintDialog();
pd.PrinterSettings = new PrinterSettings();
if (DialogResult.OK == pd.ShowDialog(this))
{
RawPrinterHelper.SendStringToPrinter(pd.PrinterSettings.PrinterName,  COMMAND);
}
19
ответ дан tslin 21 August 2018 в 01:22
поделиться
  • 1
    Я хочу сделать частичные сокращения на моей СТРАНИЦЕ на определенном месте ... возможно ли это? Я использую принтер Star Label. – highwingers 4 January 2015 в 09:54
Другие вопросы по тегам:

Похожие вопросы: