Печать на принтер смарт-карт не работает, идеи? - PullRequest
1 голос
/ 05 июня 2019

Я пытаюсь распечатать данные пользователя на смарт-карту, используя принтер смарт-карт, но в результате я получаю пустые карточки из принтера.Я застрял над этой проблемой уже один день, и в Интернете нет (находимого) ответа.

С печатью на принтере (это Datacard SP35 Plus) без использования нестандартного формата бумаги и печатного диалога.В результате получается пустая карточка.

using (PrintDocument pd = new PrintDocument())
{
    pd.PrintPage += (object sender, PrintPageEventArgs e) =>
    {
        Image i = Image.FromFile("E:\\tmp.png");
        e.Graphics.DrawImage(i, e.MarginBounds);
    };

    pd.Print();
}

Изображение присутствует и видно и имеет большой размер.

Кроме того, я наткнулся на сообщение, в котором говорится, что размер печатного документа долженбыть установленным

PaperSize papersize = new PaperSize("Custom", Convert.ToInt32(widthInInch * 100), Convert.ToInt32(heightInInch * 100));
pd.DefaultPageSettings.PaperSize = papersize;
pd.PrinterSettings.DefaultPageSettings.PaperSize = papersize;

Но это не привело к видимому отпечатку.

Я также попытался

e.Graphics.DrawImage(i, 0, 0);

вместо

e.Graphics.DrawImage(i, e.MarginBounds);

но не приводит к видимой печати. ​​

widthInInch составляет 3,38, а heightInInch составляет 2,13 (размер карты CR80 по умолчанию).Это также привело к пустой карточке.

Когда я печатаю в PDF, результат виден и корректен (конечно, я не знаю пробелы).

Кто-то видит проблему или имеетсработало что-то подобное?

1 Ответ

0 голосов
/ 25 июня 2019

Я «исправил» это, переписав свое приложение в UWP. Это использует новую функцию печати и заставляет ее работать как задумано.

...