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

时间:2019-06-05 20:19:58

标签: c# printing printdocument

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

无需使用自定义纸张尺寸和打印对话框即可打印到打印机(这是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 :(得分:0)

我通过将应用程序重写为UWP来“修复”它。这将使用新的打印功能并使它按预期工作。