我正在尝试使用智能卡打印机将用户数据打印到智能卡,但是结果是我将空白卡从打印机中取出。我已经在这个问题上停留了一天,并且互联网上没有(可找到的)答案。
无需使用自定义纸张尺寸和打印对话框即可打印到打印机(这是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时,结果是可见且正确的(当然我不知道空格)。
有人看到了问题或已经解决了类似问题吗?
答案 0 :(得分:0)
我通过将应用程序重写为UWP来“修复”它。这将使用新的打印功能并使它按预期工作。