Я пытаюсь распечатать пользовательские данные на смарт-карте с помощью принтера смарт-карт, но в результате я получаю пустые карты из принтера. Я застрял на этой проблеме в течение дня, и в Интернете нет (находимого) ответа.
При печати на принтер (это 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);
но не привело к видимой печати.
Ширина в дюймах составляет 3,38, а высота в дюймах — 2,13 (размер карты CR80 по умолчанию). Это также привело к пустой карте.
Когда я печатаю в PDF, результат виден и корректен (конечно, я не знаю пробелов).
Кто-нибудь видит проблему или разработал что-то подобное?
Я еще не пробовал SDK. Я буду держать вас в курсе @vlp





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