在Linux上使用System.Drawing.Common时,我在使用PrintDocument时遇到问题,更具体地说,问题出在PrinterSettings.Unix中使用的PrintingServices.LoadPrinterSettings。
这里的错误内容:
Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware [1]
执行请求时发生未处理的异常。 System.NullReferenceException:对象引用未设置为实例 一个对象。在 System.Drawing.Printing.PrintingServices.LoadPrinterSettings(字符串 打印机,PrinterSettings设置)
在Windows上,一切正常,因为PrintDocument使用了为Windows准备的解决方案。
代码:
PrintDocument pd = new PrintDocument();
pd.PrinterSettings.PrinterName = printerName;
pd.OriginAtMargins = true;
pd.DefaultPageSettings.Landscape = true;
pd.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0);
pd.PrintPage += new PrintPageEventHandler(Pd_PrintPage);
pd.Print();
我正在使用:
System.Drawing.common(4.5.1)
.NET Core 2.1
libc6-dev和libgdiplus已在Linux上安装
Linux-Debian 9
任何人都可以帮忙吗?
答案 0 :(得分:0)
这很可能是System.Drawing.Common中的问题。 Linux上的打印代码已从Mono移植而来,并没有引起很多关注。
如果您可以创建“最小回购”,我认为最好的选择是在https://github.com/dotnet/corefx提交问题(或者甚至更好,发送PR)。