打印到智能卡打印机不工作,想法?

Printing to a smartcard printer not working, ideas?

我正在尝试使用智能卡打印机将用户数据打印到智能卡,但结果是我从打印机中取出的是空白卡。我已经被这个问题困了一天了,互联网上没有(可找到的)答案。

打印到打印机(它是 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();
}

图像存在且可见且尺寸充足。

此外,我遇到了一个post,说必须设置打印文档的大小

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 时,结果是可见且正确的(当然我不知道空格)。

有人看到问题或解决了类似的问题吗?

我 "fixed" 通过将我的应用程序重写为 UWP。这使用了新的打印功能并使其按预期工作。