当我在Linux上使用PrintDocument时,System.Drawing.Common中的PrintingServices.LoadPrinterSettings有一个问题,更确切地说,问题来自于PrintingServices.LoadPrinterSettings,它在PrinterSettings.Unix中使用。
在这里,错误的内容:
Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware1 执行请求时发生了未处理的异常。System.NullReferenceException:对象引用没有设置为对象的实例。在System.Drawing.Printing.PrintingServices.LoadPrinterSettings(String打印机,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核心2.1
libc6 6-dev和libgdiplus已经安装在Linux上。
Linux - Debian 9
有人能帮忙吗?
发布于 2019-02-15 13:54:07
这很可能是System.Drawing.Common中的一个问题。Linux上的打印代码已经从Mono移植过来了,并没有得到太多的关注。
如果你可以创建一个“最小的回购”,我认为最好的选择是在https://github.com/dotnet/corefx提交一个问题(或者更好,发送一个PR)。
https://stackoverflow.com/questions/54688383
复制相似问题